blob: d54db3beec16199c6a82cf623680765584bea3ff [file] [log] [blame]
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
import 'package:_fe_analyzer_shared/src/macros/api.dart';
import 'api_test_expectations.dart';
macro class ClassMacro
implements ClassTypesMacro, ClassDeclarationsMacro, ClassDefinitionMacro {
const ClassMacro();
FutureOr<void> buildTypesForClass(
ClassDeclaration clazz, TypeBuilder builder) async {
await checkClassDeclaration(clazz);
}
FutureOr<void> buildDeclarationsForClass(
ClassDeclaration clazz, ClassMemberDeclarationBuilder builder) async {
await checkClassDeclaration(clazz, classIntrospector: builder);
}
FutureOr<void> buildDefinitionForClass(
ClassDeclaration clazz, ClassDefinitionBuilder builder) async {
await checkClassDeclaration(clazz, classIntrospector: builder);
}
}
macro class FunctionMacro
implements
FunctionTypesMacro,
FunctionDeclarationsMacro,
FunctionDefinitionMacro {
const FunctionMacro();
FutureOr<void> buildTypesForFunction(
FunctionDeclaration function, TypeBuilder builder) async {
checkFunctionDeclaration(function);
await checkIdentifierResolver(builder);
}
FutureOr<void> buildDeclarationsForFunction(
FunctionDeclaration function, DeclarationBuilder builder) async {
checkFunctionDeclaration(function);
await checkIdentifierResolver(builder);
}
FutureOr<void> buildDefinitionForFunction(
FunctionDeclaration function, FunctionDefinitionBuilder builder) async {
checkFunctionDeclaration(function);
await checkIdentifierResolver(builder);
}
}