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 /* futureValueType= void */ {}
}

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 {}
}
