scope: refuse `&x` where x is a local variable
[nit.git] / tests / test_variance_attr.nit
index f7a25e1..7a81644 100644 (file)
 # limitations under the License.
 
 class A
-    attr _foo: Object
-    attr _bar: A
-    attr _baz: Int
-    redef meth output do 'A'.output end
+    var foo: nullable Object
+    var bar: nullable A
+    var baz: nullable Int
+    redef fun output do 'A'.output end
 
     init do end
 end
 
 class B
-special A
-    redef attr _foo: Int
-    redef attr _bar: B
-    redef meth output do 'B'.output end
+       super A
+    redef var foo: nullable Int
+    redef var bar: nullable B
+    redef fun output do 'B'.output end
 
     init do end
 end
@@ -36,42 +36,42 @@ var a = new A
 var b = new B
 var ab: A = b
 
-a._foo = a
-a._foo.output
-a._foo = b
-a._foo.output
-a._foo = 1
-a._foo.output
-a._bar = a
-a._bar.output
-a._bar = b
-a._bar.output
-a._baz = 1
-a._baz.output
+a.foo = a
+a.foo.output
+a.foo = b
+a.foo.output
+a.foo = 1
+a.foo.output
+a.bar = a
+a.bar.output
+a.bar = b
+a.bar.output
+a.baz = 1
+a.baz.output
 
-#ab._foo = a
-#ab._foo.output
-#ab._foo = b
-#ab._foo.output
-ab._foo = 1
-ab._foo.output
-#ab._bar = a 
-#ab._bar.output
-ab._bar = b
-ab._bar.output
-ab._baz = 1
-ab._baz.output
+#ab.foo = a
+#ab.foo.output
+#ab.foo = b
+#ab.foo.output
+ab.foo = 1
+ab.foo.output
+#ab.bar = a 
+#ab.bar.output
+ab.bar = b
+ab.bar.output
+ab.baz = 1
+ab.baz.output
 
-#b._foo = a
-#b._foo.output
-#b._foo = b
-#b._foo.output
-b._foo = 1
-b._foo.output
-#b._bar = a
-#b._bar.output
-b._bar = b
-b._bar.output
-b._baz = 1
-b._baz.output
+#b.foo = a
+#b.foo.output
+#b.foo = b
+#b.foo.output
+b.foo = 1
+b.foo.output
+#b.bar = a
+#b.bar.output
+b.bar = b
+b.bar.output
+b.baz = 1
+b.baz.output