@@ -0,0 +1,86 @@
+
+Global g:C
+Function Test2()
+ g=Null
+End
+Class C
+ Field x:Int=-1
+ Method Test()
+ Test2()
+ x=100
+ For Local i:=0 Until 10
+ GCCollect()
+ Local t:=New C
+ Next
+ Print x
+ End
+Struct S
+ Field c:C
+Function Test( c:C )
+ c.x=100
+ Print c.x
+Function Test( s:S )
+ s.c.x=100
+ Print s.c.x
+Function Main()
+ 'should print 100 3 times...
+ g=New C
+ Test( g )
+ g.Test()
+ Local s:S
+ s.c=g
+ Test( s )
@@ -0,0 +1,41 @@
+ Method New( str:String )
+ Method ToString:String()
+ Return "X"
+Class D Extends C
+ Method New( e:E )
+ Super.New( e.c.ToString() )
+Class E
+ Local c:=New C( "X" )
+ Local e:=New E
+ Local d:=New D( e )
@@ -0,0 +1,21 @@
+ Method New( arr:Int[] )
+ Super.New( arr )
+ Local d:=New D( New Int[]( 1,2,3 ) )