Skip to content

Commit 83b85e3

Browse files
committed
Migrate enum.dart
1 parent 4f6647d commit 83b85e3

File tree

3 files changed

+27
-12
lines changed

3 files changed

+27
-12
lines changed

lib/src/model/enum.dart

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'package:analyzer/dart/analysis/features.dart';
86
import 'package:analyzer/dart/element/element.dart';
97
import 'package:analyzer/dart/element/element2.dart';
@@ -16,12 +14,13 @@ import 'package:meta/meta.dart';
1614

1715
class Enum extends InheritingContainer with Constructable, MixedInTypes {
1816
@override
19-
final EnumElement element;
17+
// ignore: analyzer_use_new_elements
18+
EnumElement get element => element2.asElement;
2019

2120
@override
22-
EnumElement2 get element2 => element.asElement2;
21+
final EnumElement2 element2;
2322

24-
Enum(this.element, super.library, super.packageGraph);
23+
Enum(this.element2, super.library, super.packageGraph);
2524

2625
@override
2726
late final List<ModelElement> allModelElements = [
@@ -88,19 +87,19 @@ class Enum extends InheritingContainer with Constructable, MixedInTypes {
8887
class EnumField extends Field {
8988
final int index;
9089

91-
EnumField.forConstant(this.index, FieldElement element, Library library,
90+
EnumField.forConstant(this.index, FieldElement2 element, Library library,
9291
PackageGraph packageGraph, Accessor? getter)
93-
: super(
92+
: super.element2(
9493
element, library, packageGraph, getter as ContainerAccessor?, null);
9594

9695
@override
9796
bool get isEnumValue => true;
9897

9998
@override
10099
bool get hasConstantValueForDisplay {
101-
final enum_ = element.enclosingElement3 as EnumElement;
100+
final enum_ = element2.enclosingElement2 as EnumElement2;
102101
final enumHasDefaultConstructor =
103-
enum_.constructors.any((c) => c.isDefaultConstructor);
102+
enum_.constructors2.any((c) => c.isDefaultConstructor);
104103
// If this enum does not have any explicit constructors (and so only has a
105104
// default constructor), then there is no meaningful constant initializer to
106105
// display.
@@ -109,7 +108,7 @@ class EnumField extends Field {
109108

110109
@override
111110
String get constantValueBase =>
112-
element.library.featureSet.isEnabled(Feature.enhanced_enums)
111+
element2.library2.featureSet.isEnabled(Feature.enhanced_enums)
113112
? super.constantValueBase
114113
: renderedName;
115114

lib/src/model/field.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,22 @@ class Field extends ModelElement
4949
setter?.enclosingCombo = this;
5050
}
5151

52+
Field.element2(
53+
Element2 element2,
54+
super.library,
55+
super.packageGraph,
56+
this.getter,
57+
this.setter,
58+
) : element = element2.asElement as FieldElement,
59+
isInherited = false,
60+
enclosingElement =
61+
ModelElement.for2_(element2.enclosingElement2!, library, packageGraph)
62+
as Container,
63+
assert(getter != null || setter != null) {
64+
getter?.enclosingCombo = this;
65+
setter?.enclosingCombo = this;
66+
}
67+
5268
Field.providedByExtension(
5369
this.element,
5470
this.enclosingElement,

lib/src/model/model_element.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ abstract class ModelElement
170170
}
171171
var index = constantIndex.toIntValue()!;
172172
newModelElement =
173-
EnumField.forConstant(index, e, library, packageGraph, getter);
173+
EnumField.forConstant(index, e.asElement2, library, packageGraph, getter);
174174
} else if (e.enclosingElement3 is ExtensionElement) {
175175
newModelElement = Field(e, library, packageGraph,
176176
getter as ContainerAccessor?, setter as ContainerAccessor?);
@@ -307,7 +307,7 @@ abstract class ModelElement
307307
return switch (e) {
308308
LibraryElement() => packageGraph.findButDoNotCreateLibraryFor(e)!,
309309
PrefixElement() => Prefix(e.asElement2, library, packageGraph),
310-
EnumElement() => Enum(e, library, packageGraph),
310+
EnumElement() => Enum(e.asElement2, library, packageGraph),
311311
MixinElement() => Mixin(e.asElement2, library, packageGraph),
312312
ClassElement() => Class(e, library, packageGraph),
313313
ExtensionElement() => Extension(e.asElement2, library, packageGraph),

0 commit comments

Comments
 (0)