Skip to content

Commit e660992

Browse files
fshcheglovCommit Queue
authored andcommitted
Implement augmentation for top level variable tests
Change-Id: Ic7c2728fb34c12eee6b79ab95bd258a8424a926c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/450181 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Samuel Rawlins <srawlins@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
1 parent 13cc09a commit e660992

File tree

3 files changed

+518
-1385
lines changed

3 files changed

+518
-1385
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10257,6 +10257,16 @@ class TopLevelVariableElementImpl extends PropertyInducingElementImpl
1025710257
@trackedIncludedInId
1025810258
ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
1025910259

10260+
@trackedDirectlyOpaque
10261+
TopLevelVariableFragmentImpl get lastFragment {
10262+
globalResultRequirements?.recordOpaqueApiUse(this, 'lastFragment');
10263+
var current = firstFragment;
10264+
while (current.nextFragment != null) {
10265+
current = current.nextFragment!;
10266+
}
10267+
return current;
10268+
}
10269+
1026010270
@Deprecated('Use library instead')
1026110271
@override
1026210272
@trackedIndirectly

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -739,15 +739,16 @@ class ElementBuilder {
739739

740740
void _handleTopLevelVariableFragment(
741741
LibraryFragmentImpl libraryFragment,
742-
FragmentImpl? lastVariableFragment,
742+
FragmentImpl? lastFragment,
743743
TopLevelVariableFragmentImpl variableFragment,
744744
) {
745745
assert(!variableFragment.isSynthetic);
746746
libraryFragment.addTopLevelVariable(variableFragment);
747747

748-
if (variableFragment.isAugmentation &&
749-
lastVariableFragment is TopLevelVariableFragmentImpl) {
750-
lastVariableFragment.addFragment(variableFragment);
748+
var lastVariableElement = _topLevelVariableElement(lastFragment);
749+
750+
if (variableFragment.isAugmentation && lastVariableElement != null) {
751+
lastVariableElement.lastFragment.addFragment(variableFragment);
751752
return;
752753
}
753754

0 commit comments

Comments
 (0)