library /*isNonNullableByDefault*/;
import self as self;
import "macro.dart" as mac;
import "dart:core" as core;
import "main_lib.dart" as mai;

import "org-dartlang-test:///a/b/c/user_macro/macro.dart";
import "org-dartlang-test:///a/b/c/user_macro/main_lib.dart";

@#C1
class Class extends core::Object {
  synthetic constructor •() → self::Class
    : super core::Object::•()
    ;
  method existingMethod() → void {
    mai::existingMethodDependency();
  }
}

library /*isNonNullableByDefault*/;
import self as mai;

static method existingMethodDependency() → void {}

library /*isNonNullableByDefault*/;
import self as mac;
import "dart:core" as core;
import "package:_fe_analyzer_shared/src/macros/api.dart" as api;

import "dart:async";
import "package:_fe_analyzer_shared/src/macros/api.dart";
import "org-dartlang-test:///a/b/c/user_macro/macro_dependency.dart";

macro class MethodMacro extends core::Object implements api::ClassDeclarationsMacro /*hasConstConstructor*/  {
  const constructor •() → mac::MethodMacro
    : super core::Object::•()
    ;
  @#C2
  method buildDeclarationsForClass(api::ClassDeclaration clazz, api::ClassMemberDeclarationBuilder builder) → FutureOr<void> async {}
}

library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;

static method generateBody() → core::String {
  return "  void method() {}\n";
}

constants  {
  #C1 = mac::MethodMacro {}
  #C2 = dart.core::_Override {}
}
