Skip to content

Commit d230290

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Remove Fragment.name/nameOffset, use name2 instead.
Change-Id: I36ab124af49c0bd8b85c8ede9c3918dbfdc518a2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/390812 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Phil Quitslund <[email protected]>
1 parent 6811e7f commit d230290

File tree

16 files changed

+63
-109
lines changed

16 files changed

+63
-109
lines changed

pkg/analysis_server/lib/src/lsp/handlers/code_lens/abstract_code_lens_provider.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ abstract class AbstractCodeLensProvider
3333
/// If for any reason the location cannot be computed, returns `null`.
3434
Location? getLocation(Fragment fragment) {
3535
// We can't produce a location to a name if there isn't one.
36-
var nameOffset = fragment.nameOffset;
36+
var nameOffset = fragment.name2?.nameOffset;
3737
var nameLength = fragment.element.displayName.length;
38-
if (nameOffset == null || nameOffset == -1) {
38+
if (nameOffset == null) {
3939
return null;
4040
}
4141

pkg/analysis_server/lib/src/lsp/handlers/code_lens/augmentations.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ class AugmentationCodeLensProvider extends AbstractCodeLensProvider {
7272
) {
7373
var command =
7474
getNavigationCommand(clientCapabilities, title, targetFragment);
75-
var nameOffset = thisFragment.nameOffset;
75+
var nameOffset = thisFragment.name2?.nameOffset;
7676
var nameLength = thisFragment.element.displayName.length;
77-
if (command != null && nameOffset != null && nameOffset != -1) {
77+
if (command != null && nameOffset != null) {
7878
var range = toRange(
7979
result.lineInfo,
8080
nameOffset,

pkg/analysis_server/lib/src/protocol_server.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,8 @@ Location? newLocation_fromElement2(engine.Element2? element) {
271271
if (fragment == null) {
272272
return null;
273273
}
274-
var offset = fragment.nameOffset ?? 0;
275-
var length = fragment.name?.length ?? 0;
274+
var offset = fragment.name2?.nameOffset ?? 0;
275+
var length = fragment.name2?.name.length ?? 0;
276276
var range = engine.SourceRange(offset, length);
277277
return _locationForArgs2(fragment, range);
278278
} else if (element is engine.LocalFunctionElement) {

pkg/analysis_server/lib/src/services/correction/dart/add_field_formal_parameters.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ class AddFieldFormalParameters extends ResolvedCorrectionProducer {
4343
// Compute uninitialized final fields.
4444
var fields = ErrorVerifier.computeNotInitializedFields2(constructor);
4545
fields.retainWhere((FieldElement2 field) => field.isFinal);
46-
fields.sort(
47-
(a, b) => a.firstFragment!.nameOffset! - b.firstFragment!.nameOffset!);
46+
fields.sort((a, b) =>
47+
a.firstFragment!.name2!.nameOffset -
48+
b.firstFragment!.name2!.nameOffset);
4849

4950
// Specialize for Flutter widgets.
5051
if (superType.isExactlyStatelessWidgetType ||

pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -88,28 +88,33 @@ class ReplaceReturnType extends ResolvedCorrectionProducer {
8888

8989
bool _isCompatibleWithReturnType(
9090
MethodDeclaration method, DartType? newType) {
91-
if (newType != null) {
92-
var clazz = method.thisOrAncestorOfType<ClassDeclaration>();
93-
if (clazz != null) {
94-
var classElement = clazz.declaredFragment!.element;
95-
var overriddenList = InheritanceManager3().getOverridden4(
96-
classElement,
97-
Name.forLibrary(
98-
classElement.library2,
99-
method.declaredFragment!.name!,
100-
));
101-
102-
if (overriddenList != null) {
103-
var notSubtype = overriddenList.any((element) => !libraryElement2
104-
.typeSystem
105-
.isSubtypeOf(newType, element.returnType));
106-
if (notSubtype) {
107-
return false;
108-
}
109-
}
91+
if (newType == null) {
92+
return false;
93+
}
94+
95+
var clazz = method.thisOrAncestorOfType<ClassDeclaration>();
96+
if (clazz == null) {
97+
return false;
98+
}
99+
100+
var methodName = method.declaredFragment!.name2;
101+
if (methodName == null) {
102+
return false;
103+
}
104+
105+
var classElement = clazz.declaredFragment!.element;
106+
var overriddenList = InheritanceManager3().getOverridden4(
107+
classElement,
108+
Name.forLibrary(classElement.library2, methodName.name),
109+
);
110+
111+
if (overriddenList != null) {
112+
var notSubtype = overriddenList.any((element) =>
113+
!libraryElement2.typeSystem.isSubtypeOf(newType, element.returnType));
114+
if (notSubtype) {
115+
return false;
110116
}
111-
return true;
112117
}
113-
return false;
118+
return true;
114119
}
115120
}

pkg/analyzer/lib/dart/element/element2.dart

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -859,11 +859,6 @@ abstract class Fragment {
859859
/// This will be the fragment itself if it is a library fragment.
860860
LibraryFragment get libraryFragment;
861861

862-
/// The name of this fragment.
863-
///
864-
/// Returns `null` if this fragment doesn't have a name.
865-
String? get name;
866-
867862
/// The name of this fragment.
868863
///
869864
/// Returns `null` if the fragment does not have a name, e.g. an unnamed
@@ -876,11 +871,6 @@ abstract class Fragment {
876871
/// specified, and the parser inserted a synthetic identifier.
877872
FragmentName? get name2;
878873

879-
/// The offset of the name in this fragment.
880-
///
881-
/// Returns `null` if the fragment has no name.
882-
int? get nameOffset;
883-
884874
/// The next fragment in the augmentation chain.
885875
///
886876
/// Returns `null` if this is the last fragment in the chain.
@@ -1017,9 +1007,6 @@ abstract class GetterFragment implements ExecutableFragment {
10171007
// @override
10181008
// GetterElement get element;
10191009

1020-
@override
1021-
String? get name;
1022-
10231010
/// The field or top-level variable associated with this getter.
10241011
///
10251012
/// If this getter was explicitly defined (is not synthetic) then the variable
@@ -1185,9 +1172,6 @@ abstract class InterfaceFragment implements InstanceFragment {
11851172
/// [MixinFragment] cannot have mixins, so the empty list is returned.
11861173
List<InterfaceType> get mixins;
11871174

1188-
@override
1189-
String get name;
1190-
11911175
/// The superclass declared by this fragment.
11921176
InterfaceType? get supertype;
11931177
}
@@ -1681,9 +1665,6 @@ abstract class MethodFragment implements ExecutableFragment {
16811665
@override
16821666
InstanceFragment? get enclosingFragment;
16831667

1684-
@override
1685-
String get name;
1686-
16871668
@override
16881669
MethodFragment? get nextFragment;
16891670

@@ -1781,7 +1762,7 @@ abstract class PrefixElement2 implements Element2, FragmentedElement {
17811762
LibraryElement2 get library2;
17821763

17831764
@override
1784-
String get name;
1765+
String? get name;
17851766

17861767
/// The name lookup scope for this import prefix.
17871768
///
@@ -1804,9 +1785,6 @@ abstract class PrefixFragment implements Fragment {
18041785
/// Whether the [LibraryImport] is deferred.
18051786
bool get isDeferred;
18061787

1807-
@override
1808-
String get name;
1809-
18101788
@override
18111789
PrefixFragment? get nextFragment;
18121790

@@ -1829,9 +1807,6 @@ abstract class PromotableElement2 implements VariableElement2 {
18291807
abstract class PromotableFragment implements VariableFragment {
18301808
@override
18311809
PromotableElement2 get element;
1832-
1833-
@override
1834-
String get name;
18351810
}
18361811

18371812
/// A variable that has an associated getter and possibly a setter. Note that
@@ -1916,9 +1891,6 @@ abstract class PropertyInducingFragment
19161891
// TODO(brianwilkerson): Should synthetic elements have a fragment?
19171892
bool get isSynthetic;
19181893

1919-
@override
1920-
String get name;
1921-
19221894
@override
19231895
PropertyInducingFragment? get nextFragment;
19241896

@@ -1978,9 +1950,6 @@ abstract class SetterFragment implements ExecutableFragment {
19781950
// @override
19791951
// SetterElement get element;
19801952

1981-
@override
1982-
String? get name;
1983-
19841953
/// The field or top-level variable associated with this setter.
19851954
///
19861955
/// If this setter was explicitly defined (is not synthetic) then the variable
@@ -2130,9 +2099,6 @@ abstract class TypeAliasFragment
21302099
@override
21312100
LibraryFragment? get enclosingFragment;
21322101

2133-
@override
2134-
String get name;
2135-
21362102
@override
21372103
TypeAliasFragment? get nextFragment;
21382104

@@ -2195,9 +2161,6 @@ abstract class TypeParameterFragment implements TypeDefiningFragment {
21952161
@override
21962162
TypeParameterElement2 get element;
21972163

2198-
@override
2199-
String get name;
2200-
22012164
@override
22022165
TypeParameterFragment? get nextFragment;
22032166

pkg/analyzer/lib/src/dart/analysis/driver.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ import 'package:meta/meta.dart';
9696
// TODO(scheglov): Clean up the list of implicitly analyzed files.
9797
class AnalysisDriver {
9898
/// The version of data format, should be incremented on every format change.
99-
static const int DATA_VERSION = 401;
99+
static const int DATA_VERSION = 402;
100100

101101
/// The number of exception contexts allowed to write. Once this field is
102102
/// zero, we stop writing any new exception contexts in this process.

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9017,7 +9017,7 @@ class PrefixElementImpl extends _ExistingElementImpl implements PrefixElement {
90179017

90189018
PrefixElementImpl2 get element2 {
90199019
return enclosingElement3.prefixes.firstWhere((element) {
9020-
return element.name == name;
9020+
return (element.name ?? '') == name;
90219021
});
90229022
}
90239023

@@ -9118,7 +9118,7 @@ class PrefixElementImpl2 extends ElementImpl2 implements PrefixElement2 {
91189118
}
91199119

91209120
@override
9121-
String get name => firstFragment.name;
9121+
String? get name => firstFragment.name2?.name;
91229122

91239123
@override
91249124
// TODO(scheglov): implement scope
@@ -9156,12 +9156,6 @@ class PrefixFragmentImpl implements PrefixFragment {
91569156
@override
91579157
final CompilationUnitElementImpl enclosingFragment;
91589158

9159-
@override
9160-
final String name;
9161-
9162-
@override
9163-
int nameOffset;
9164-
91659159
@override
91669160
FragmentNameImpl? name2;
91679161

@@ -9179,8 +9173,6 @@ class PrefixFragmentImpl implements PrefixFragment {
91799173

91809174
PrefixFragmentImpl({
91819175
required this.enclosingFragment,
9182-
required this.name,
9183-
required this.nameOffset,
91849176
required this.name2,
91859177
required this.isDeferred,
91869178
});

pkg/analyzer/lib/src/summary2/bundle_reader.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1324,12 +1324,9 @@ class LibraryReader {
13241324
return _reader.readOptionalObject((reader) {
13251325
var fragmentName = _readFragmentName();
13261326
var reference = _readReference();
1327-
var name = _reader.readStringReference();
13281327
var isDeferred = _reader.readBool();
13291328
var fragment = PrefixFragmentImpl(
13301329
enclosingFragment: libraryFragment,
1331-
name: name,
1332-
nameOffset: -1,
13331330
name2: fragmentName,
13341331
isDeferred: isDeferred,
13351332
);

pkg/analyzer/lib/src/summary2/bundle_writer.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,6 @@ class BundleWriter {
506506
_sink.writeOptionalObject(fragment, (fragment) {
507507
_writeFragmentName(fragment.name2);
508508
_writeReference2(fragment.element.reference);
509-
_sink._writeStringReference(fragment.name);
510509
_sink.writeBool(fragment.isDeferred);
511510
});
512511
}

0 commit comments

Comments
 (0)