blob: 78aa6d1062616f772465e2de9d03199d72934276 [file] [log] [blame]
// Copyright (c) 2024, 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.
part of 'fragment.dart';
class EnumFragment extends DeclarationFragment implements Fragment {
@override
final String name;
final int nameOffset;
SourceEnumBuilder? _builder;
late final LookupScope compilationUnitScope;
late final List<MetadataBuilder>? metadata;
late final List<TypeBuilder>? mixins;
late final List<TypeBuilder>? interfaces;
late final List<ConstructorReferenceBuilder> constructorReferences;
late final int startOffset;
late final int endOffset;
final List<EnumElementFragment> enumElements = [];
EnumFragment(this.name, super.fileUri, this.nameOffset, super.typeParameters,
super.typeParameterScope, super._nominalParameterNameSpace);
@override
int get fileOffset => nameOffset;
@override
SourceEnumBuilder get builder {
assert(_builder != null, "Builder has not been computed for $this.");
return _builder!;
}
void set builder(SourceEnumBuilder value) {
assert(_builder == null, "Builder has already been computed for $this.");
_builder = value;
}
@override
void addEnumElement(EnumElementFragment fragment) {
enumElements.add(fragment);
}
@override
DeclarationFragmentKind get kind => DeclarationFragmentKind.enumDeclaration;
@override
String toString() => '$runtimeType($name,$fileUri,$fileOffset)';
}