| library; |
| // |
| // Problems in library: |
| // |
| // org-dartlang-test:///a/b/c/main.dart:9:2: Error: The macro 'Macro1' can't be applied in the same library cycle where it is defined. |
| // Try moving it to a different library that does not import the one where it is applied. |
| // @Macro1() // Error |
| // ^ |
| // |
| import self as self; |
| import "main_lib1.dart" as mai; |
| import "main_lib2.dart" as mai2; |
| |
| import "dart:async"; |
| import "org-dartlang-test:///a/b/c/main_lib1.dart"; |
| import "org-dartlang-test:///a/b/c/main_lib2.dart"; |
| |
| @#C1 |
| @#C2 |
| static method method() → dynamic {} |
| |
| library; |
| import self as mai; |
| import "dart:core" as core; |
| import "package:_macros/src/api.dart" as api; |
| |
| import "dart:async"; |
| import "package:macros/macros.dart"; |
| import "org-dartlang-test:///a/b/c/main.dart"; |
| |
| macro class Macro1 extends core::Object implements api::FunctionDeclarationsMacro /*hasConstConstructor*/ { |
| const constructor •() → mai::Macro1 |
| : super core::Object::•() |
| ; |
| method buildDeclarationsForFunction(api::FunctionDeclaration function, api::DeclarationBuilder builder) → FutureOr<void> {} |
| } |
| |
| library; |
| import self as mai2; |
| import "dart:core" as core; |
| import "package:_macros/src/api.dart" as api; |
| |
| import "dart:async"; |
| import "package:macros/macros.dart"; |
| |
| macro class Macro2 extends core::Object implements api::FunctionDeclarationsMacro /*hasConstConstructor*/ { |
| const constructor •() → mai2::Macro2 |
| : super core::Object::•() |
| ; |
| method buildDeclarationsForFunction(api::FunctionDeclaration function, api::DeclarationBuilder builder) → FutureOr<void> {} |
| } |
| |
| constants { |
| #C1 = mai::Macro1 {} |
| #C2 = mai2::Macro2 {} |
| } |