|
@@ -0,0 +1,51 @@
|
|
|
|
+class Main {
|
|
|
|
+ static function main() {
|
|
|
|
+ trace("Foo");
|
|
|
|
+ trace(Foo1.macros);
|
|
|
|
+ trace(Foo2.macros);
|
|
|
|
+ trace(Foo3.macros);
|
|
|
|
+ trace(Foo4.macros);
|
|
|
|
+
|
|
|
|
+ trace("Bar");
|
|
|
|
+ trace(Bar1.macros);
|
|
|
|
+ trace(Bar2.macros);
|
|
|
|
+ trace(Bar3.macros);
|
|
|
|
+
|
|
|
|
+ trace("Baz");
|
|
|
|
+ trace(Baz1.macros);
|
|
|
|
+ trace(Baz2.macros);
|
|
|
|
+ trace(Baz3.macros);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+@:autoBuild(Macro.build("I1"))
|
|
|
|
+interface I1 {}
|
|
|
|
+
|
|
|
|
+@:autoBuild(Macro.build("I2"))
|
|
|
|
+interface I2 {}
|
|
|
|
+
|
|
|
|
+@:autoBuild(Macro.build("auto Foo1 (1)"))
|
|
|
|
+@:autoBuild(Macro.build("auto Foo1 (2)"))
|
|
|
|
+@:build(Macro.build("Foo1"))
|
|
|
|
+class Foo1 implements I1 implements I2 {}
|
|
|
|
+
|
|
|
|
+@:build(Macro.build("Foo2"))
|
|
|
|
+class Foo2 extends Foo1 {}
|
|
|
|
+
|
|
|
|
+@:build(Macro.build("Foo3 (1)"))
|
|
|
|
+@:build(Macro.build("Foo3 (2)"))
|
|
|
|
+class Foo3 extends Foo2 {}
|
|
|
|
+
|
|
|
|
+@:build(Macro.build("Foo4"))
|
|
|
|
+class Foo4 extends Foo3 {}
|
|
|
|
+
|
|
|
|
+class Bar1 implements I2 implements I1 {}
|
|
|
|
+class Bar2 extends Bar1 {}
|
|
|
|
+class Bar3 extends Bar2 {}
|
|
|
|
+
|
|
|
|
+@:autoBuild(Macro.build("I3"))
|
|
|
|
+interface I3 extends I1 {}
|
|
|
|
+
|
|
|
|
+class Baz1 implements I3 implements I2 {}
|
|
|
|
+class Baz2 extends Baz1 {}
|
|
|
|
+class Baz3 extends Baz2 {}
|