Skip to content

"Error: The macro can only be applied to enums or enum values." - What interface to use instead? #56305

Closed as not planned
@Lootwig

Description

@Lootwig

The message from the title is occuring when trying to apply below macro to this declaration, which looks a lot like an enum to my naive eyes:

@X()
enum LetsTry {
  one;
}
import 'dart:async';

import 'package:macros/macros.dart';

macro class X
    implements
        EnumDefinitionMacro,
        EnumValueTypesMacro,
        EnumDeclarationsMacro,
        EnumValueDeclarationsMacro,
        EnumValueDefinitionMacro,
        EnumTypesMacro {
  const X();

  @override
  FutureOr<void> buildDeclarationsForEnum(EnumDeclaration enuum, EnumDeclarationBuilder builder) {
    builder.report(Diagnostic(DiagnosticMessage('I ran'), Severity.warning));
  }

  @override
  FutureOr<void> buildDeclarationsForEnumValue(EnumValueDeclaration entry, EnumDeclarationBuilder builder) {
    builder.report(Diagnostic(DiagnosticMessage('I ran'), Severity.warning));
  }

  @override
  FutureOr<void> buildDefinitionForEnum(EnumDeclaration enuum, EnumDefinitionBuilder builder) {
    builder.report(Diagnostic(DiagnosticMessage('I ran'), Severity.warning));
  }

  @override
  FutureOr<void> buildDefinitionForEnumValue(EnumValueDeclaration entry, EnumValueDefinitionBuilder builder) {
    builder.report(Diagnostic(DiagnosticMessage('I ran'), Severity.warning));
  }

  @override
  FutureOr<void> buildTypesForEnum(EnumDeclaration enuum, EnumTypeBuilder builder) {
    builder.report(Diagnostic(DiagnosticMessage('I ran'), Severity.warning));
  }

  @override
  FutureOr<void> buildTypesForEnumValue(EnumValueDeclaration entry, TypeBuilder builder) {
    builder.report(Diagnostic(DiagnosticMessage('I ran'), Severity.warning));
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    cfe-feature-macrosImplement macros features in the CFEfeature-macrosImplementation of the macros featurelegacy-area-front-endLegacy: Use area-dart-model instead.type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)type-questionA question about expected behavior or functionality

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions