Skip to content

Commit 4936904

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Prepare for -1 as nameOffset of synthetic PropertyAccessorElement(s).
Change-Id: Ia8f2760475e2bc465329c1bcdc08732d1a338ecc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203295 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent 5951351 commit 4936904

File tree

7 files changed

+66
-44
lines changed

7 files changed

+66
-44
lines changed

pkg/analysis_server/lib/src/computer/computer_overrides.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,13 @@ class DartUnitOverridesComputer {
5858
var interfaceElements = overridesResult.interfaceElements;
5959
if (superElements.isNotEmpty || interfaceElements.isNotEmpty) {
6060
var superMember = superElements.isNotEmpty
61-
? proto.newOverriddenMember_fromEngine(superElements.first,
61+
? proto.newOverriddenMember_fromEngine(
62+
superElements.first.nonSynthetic,
6263
withNullability: _unit.isNonNullableByDefault)
6364
: null;
6465
var interfaceMembers = interfaceElements
65-
.map((member) => proto.newOverriddenMember_fromEngine(member,
66+
.map((member) => proto.newOverriddenMember_fromEngine(
67+
member.nonSynthetic,
6668
withNullability: _unit.isNonNullableByDefault))
6769
.toList();
6870
_overrides.add(proto.Override(node.offset, node.length,

pkg/analysis_server/lib/src/search/type_hierarchy.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,11 @@ class TypeHierarchyComputer {
8282
}
8383
// create a subclass item
8484
var subMemberElement = _findMemberElement(subElement);
85+
var subMemberElementDeclared = subMemberElement?.nonSynthetic;
8586
subItem = TypeHierarchyItem(
8687
convertElement(subElement, withNullability: _isNonNullableByDefault),
87-
memberElement: subMemberElement != null
88-
? convertElement(subMemberElement,
88+
memberElement: subMemberElementDeclared != null
89+
? convertElement(subMemberElementDeclared,
8990
withNullability: _isNonNullableByDefault)
9091
: null,
9192
superclass: itemId);
@@ -126,12 +127,13 @@ class TypeHierarchyComputer {
126127
displayName = classElement.displayName + '<' + typeArgumentsStr + '>';
127128
}
128129
var memberElement = _findMemberElement(classElement);
130+
var memberElementDeclared = memberElement?.nonSynthetic;
129131
item = TypeHierarchyItem(
130132
convertElement(classElement,
131133
withNullability: _isNonNullableByDefault),
132134
displayName: displayName,
133-
memberElement: memberElement != null
134-
? convertElement(memberElement,
135+
memberElement: memberElementDeclared != null
136+
? convertElement(memberElementDeclared,
135137
withNullability: _isNonNullableByDefault)
136138
: null);
137139
_elementItemMap[classElement] = item;

pkg/analysis_server/test/search/type_hierarchy_test.dart

Lines changed: 50 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -539,13 +539,18 @@ class B extends A {
539539
var test = 2;
540540
}
541541
''');
542-
var items = await _getTypeHierarchy('test = 2;');
543-
var itemB = items[0];
544-
var itemA = items[itemB.superclass!];
545-
expect(itemA.classElement.name, 'A');
546-
expect(itemB.classElement.name, 'B');
547-
expect(itemA.memberElement!.location!.offset, findOffset('test = 1;'));
548-
expect(itemB.memberElement!.location!.offset, findOffset('test = 2;'));
542+
543+
void checkItems(List<TypeHierarchyItem> items) {
544+
var itemA = items.firstWhere((e) => e.classElement.name == 'A');
545+
var itemB = items.firstWhere((e) => e.classElement.name == 'B');
546+
var memberA = itemA.memberElement!;
547+
var memberB = itemB.memberElement!;
548+
expect(memberA.location!.offset, findOffset('test = 1;'));
549+
expect(memberB.location!.offset, findOffset('test = 2;'));
550+
}
551+
552+
checkItems(await _getTypeHierarchy('test = 1;'));
553+
checkItems(await _getTypeHierarchy('test = 2;'));
549554
}
550555

551556
Future<void> test_member_fromField_toGetter() async {
@@ -557,13 +562,18 @@ class B extends A {
557562
var test = 2;
558563
}
559564
''');
560-
var items = await _getTypeHierarchy('test = 2;');
561-
var itemB = items[0];
562-
var itemA = items[itemB.superclass!];
563-
expect(itemA.classElement.name, 'A');
564-
expect(itemB.classElement.name, 'B');
565-
expect(itemA.memberElement!.location!.offset, findOffset('test => 1'));
566-
expect(itemB.memberElement!.location!.offset, findOffset('test = 2;'));
565+
566+
void checkItems(List<TypeHierarchyItem> items) {
567+
var itemA = items.firstWhere((e) => e.classElement.name == 'A');
568+
var itemB = items.firstWhere((e) => e.classElement.name == 'B');
569+
var memberA = itemA.memberElement!;
570+
var memberB = itemB.memberElement!;
571+
expect(memberA.location!.offset, findOffset('test => 1'));
572+
expect(memberB.location!.offset, findOffset('test = 2;'));
573+
}
574+
575+
checkItems(await _getTypeHierarchy('test => 1;'));
576+
checkItems(await _getTypeHierarchy('test = 2;'));
567577
}
568578

569579
Future<void> test_member_fromField_toSetter() async {
@@ -575,13 +585,18 @@ class B extends A {
575585
var test = 2;
576586
}
577587
''');
578-
var items = await _getTypeHierarchy('test = 2;');
579-
var itemB = items[0];
580-
var itemA = items[itemB.superclass!];
581-
expect(itemA.classElement.name, 'A');
582-
expect(itemB.classElement.name, 'B');
583-
expect(itemA.memberElement!.location!.offset, findOffset('test(a) {}'));
584-
expect(itemB.memberElement!.location!.offset, findOffset('test = 2;'));
588+
589+
void checkItems(List<TypeHierarchyItem> items) {
590+
var itemA = items.firstWhere((e) => e.classElement.name == 'A');
591+
var itemB = items.firstWhere((e) => e.classElement.name == 'B');
592+
var memberA = itemA.memberElement!;
593+
var memberB = itemB.memberElement!;
594+
expect(memberA.location!.offset, findOffset('test(a) {}'));
595+
expect(memberB.location!.offset, findOffset('test = 2;'));
596+
}
597+
598+
checkItems(await _getTypeHierarchy('test(a) {}'));
599+
checkItems(await _getTypeHierarchy('test = 2;'));
585600
}
586601

587602
Future<void> test_member_fromFinalField_toGetter() async {
@@ -593,13 +608,18 @@ class B extends A {
593608
final test = 2;
594609
}
595610
''');
596-
var items = await _getTypeHierarchy('test = 2;');
597-
var itemB = items[0];
598-
var itemA = items[itemB.superclass!];
599-
expect(itemA.classElement.name, 'A');
600-
expect(itemB.classElement.name, 'B');
601-
expect(itemA.memberElement!.location!.offset, findOffset('test => 1;'));
602-
expect(itemB.memberElement!.location!.offset, findOffset('test = 2;'));
611+
612+
void checkItems(List<TypeHierarchyItem> items) {
613+
var itemA = items.firstWhere((e) => e.classElement.name == 'A');
614+
var itemB = items.firstWhere((e) => e.classElement.name == 'B');
615+
var memberA = itemA.memberElement!;
616+
var memberB = itemB.memberElement!;
617+
expect(memberA.location!.offset, findOffset('test => 1'));
618+
expect(memberB.location!.offset, findOffset('test = 2;'));
619+
}
620+
621+
checkItems(await _getTypeHierarchy('test => 1;'));
622+
checkItems(await _getTypeHierarchy('test = 2;'));
603623
}
604624

605625
Future<void> test_member_fromFinalField_toSetter() async {
@@ -612,10 +632,8 @@ class B extends A {
612632
}
613633
''');
614634
var items = await _getTypeHierarchy('test = 2;');
615-
var itemB = items[0];
616-
var itemA = items[itemB.superclass!];
617-
expect(itemA.classElement.name, 'A');
618-
expect(itemB.classElement.name, 'B');
635+
var itemA = items.firstWhere((e) => e.classElement.name == 'A');
636+
var itemB = items.firstWhere((e) => e.classElement.name == 'B');
619637
expect(itemA.memberElement, isNull);
620638
expect(itemB.memberElement!.location!.offset, findOffset('test = 2;'));
621639
}

pkg/analyzer/lib/error/listener.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ class ErrorReporter {
7171
/// is used to compute the location of the error.
7272
void reportErrorForElement(ErrorCode errorCode, Element element,
7373
[List<Object>? arguments]) {
74-
reportErrorForOffset(
75-
errorCode, element.nameOffset, element.nameLength, arguments);
74+
reportErrorForOffset(errorCode, element.nonSynthetic.nameOffset,
75+
element.nameLength, arguments);
7676
}
7777

7878
/// Report a diagnostic with the given [code] and [arguments]. The

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ import 'package:meta/meta.dart';
8282
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
8383
class AnalysisDriver implements AnalysisDriverGeneric {
8484
/// The version of data format, should be incremented on every format change.
85-
static const int DATA_VERSION = 146;
85+
static const int DATA_VERSION = 147;
8686

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

pkg/analyzer/lib/src/generated/resolver.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3432,7 +3432,7 @@ class _WhyNotPromotedVisitor
34323432
filePath: property.source.fullName,
34333433
message:
34343434
"'$propertyName' refers to a property so it couldn't be promoted",
3435-
offset: property.nameOffset,
3435+
offset: property.nonSynthetic.nameOffset,
34363436
length: property.nameLength,
34373437
url: reason.documentationLink);
34383438
}

pkg/analyzer/test/src/dart/micro/simple_file_resolver_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -835,7 +835,7 @@ var b = a;
835835
await resolveTestFile();
836836
{
837837
var element = findNode.simple('a;').staticElement!;
838-
expect(element.nameOffset, 4);
838+
expect(element.nonSynthetic.nameOffset, 4);
839839
}
840840

841841
// New resolver.
@@ -844,7 +844,7 @@ var b = a;
844844
await resolveTestFile();
845845
{
846846
var element = findNode.simple('a;').staticElement!;
847-
expect(element.nameOffset, 4);
847+
expect(element.nonSynthetic.nameOffset, 4);
848848
}
849849
}
850850

0 commit comments

Comments
 (0)