Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit b1d3a21

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Fill references to dynamic/Naver in LinkedElementFactory.
[email protected], [email protected] Change-Id: I85f61c6322a6332ac6b095aaf8cf4203460babc3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103940 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent d9dccc3 commit b1d3a21

File tree

6 files changed

+19
-39
lines changed

6 files changed

+19
-39
lines changed

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -352,10 +352,6 @@ class LibraryContext {
352352
analysisSession,
353353
Reference.root(),
354354
);
355-
356-
var dartCoreRef = elementFactory.rootReference.getChild('dart:core');
357-
dartCoreRef.getChild('dynamic').element = DynamicElementImpl.instance;
358-
dartCoreRef.getChild('Never').element = NeverElementImpl.instance;
359355
}
360356

361357
void _createElementFactoryTypeProvider() {

pkg/analyzer/lib/src/summary/summary_file_builder.dart

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import 'package:analyzer/dart/ast/token.dart';
1111
import 'package:analyzer/error/listener.dart';
1212
import 'package:analyzer/file_system/file_system.dart';
1313
import 'package:analyzer/file_system/physical_file_system.dart';
14-
import 'package:analyzer/src/dart/element/element.dart';
1514
import 'package:analyzer/src/dart/scanner/reader.dart';
1615
import 'package:analyzer/src/dart/scanner/scanner.dart';
1716
import 'package:analyzer/src/dart/sdk/sdk.dart';
@@ -148,15 +147,10 @@ class _Builder {
148147
}
149148

150149
void _link2() {
151-
var rootReference = summary2.Reference.root();
152-
var dartCoreRef = rootReference.getChild('dart:core');
153-
dartCoreRef.getChild('dynamic').element = DynamicElementImpl.instance;
154-
dartCoreRef.getChild('Never').element = NeverElementImpl.instance;
155-
156150
var elementFactory = summary2.LinkedElementFactory(
157151
context,
158152
null,
159-
rootReference,
153+
summary2.Reference.root(),
160154
);
161155

162156
var linkResult = summary2.link(elementFactory, inputLibraries);

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

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import 'package:analyzer/dart/analysis/declared_variables.dart';
66
import 'package:analyzer/dart/analysis/features.dart';
77
import 'package:analyzer/dart/ast/ast.dart' show CompilationUnit;
8-
import 'package:analyzer/src/dart/element/element.dart';
98
import 'package:analyzer/src/dart/element/inheritance_manager2.dart';
109
import 'package:analyzer/src/generated/constant.dart';
1110
import 'package:analyzer/src/generated/engine.dart';
@@ -50,12 +49,9 @@ class Linker {
5049
InheritanceManager2 inheritance; // TODO(scheglov) cache it
5150

5251
Linker(this.elementFactory) {
53-
var dynamicRef = rootReference.getChild('dart:core').getChild('dynamic');
54-
dynamicRef.element = DynamicElementImpl.instance;
55-
var neverRef = rootReference.getChild('dart:core').getChild('Never');
56-
neverRef.element = NeverElementImpl.instance;
57-
58-
linkingBundleContext = LinkingBundleContext(dynamicRef);
52+
linkingBundleContext = LinkingBundleContext(
53+
elementFactory.dynamicRef,
54+
);
5955

6056
bundleContext = LinkedBundleContext.forAst(
6157
elementFactory,

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,23 @@ class LinkedElementFactory {
2323
CoreTypes _coreTypes;
2424

2525
LinkedElementFactory(
26-
this.analysisContext, this.analysisSession, this.rootReference);
26+
this.analysisContext,
27+
this.analysisSession,
28+
this.rootReference,
29+
) {
30+
var dartCoreRef = rootReference.getChild('dart:core');
31+
dartCoreRef.getChild('dynamic').element = DynamicElementImpl.instance;
32+
dartCoreRef.getChild('Never').element = NeverElementImpl.instance;
33+
}
2734

2835
CoreTypes get coreTypes {
2936
return _coreTypes ??= CoreTypes(this);
3037
}
3138

39+
Reference get dynamicRef {
40+
return rootReference.getChild('dart:core').getChild('dynamic');
41+
}
42+
3243
bool get hasDartCore {
3344
return libraryMap.containsKey('dart:core');
3445
}

pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,6 @@ class ResynthesizeAst2Test extends ResynthesizeTestStrategyTwoPhase
5151
);
5252
}
5353

54-
var rootReference = Reference.root();
55-
var dartCoreRef = rootReference.getChild('dart:core');
56-
dartCoreRef.getChild('dynamic').element = DynamicElementImpl.instance;
57-
dartCoreRef.getChild('Never').element = NeverElementImpl.instance;
58-
5954
var elementFactory = LinkedElementFactory(
6055
RestrictedAnalysisContext(
6156
SynchronousSession(
@@ -65,7 +60,7 @@ class ResynthesizeAst2Test extends ResynthesizeTestStrategyTwoPhase
6560
sourceFactory,
6661
),
6762
_AnalysisSessionForLinking(),
68-
rootReference,
63+
Reference.root(),
6964
);
7065

7166
var sdkLinkResult = link(elementFactory, inputLibraries);
@@ -90,16 +85,10 @@ class ResynthesizeAst2Test extends ResynthesizeTestStrategyTwoPhase
9085
sourceFactory,
9186
);
9287

93-
var rootReference = Reference.root();
94-
rootReference.getChild('dart:core').getChild('dynamic').element =
95-
DynamicElementImpl.instance;
96-
rootReference.getChild('dart:core').getChild('Never').element =
97-
NeverElementImpl.instance;
98-
9988
var elementFactory = LinkedElementFactory(
10089
analysisContext,
10190
_AnalysisSessionForLinking(),
102-
rootReference,
91+
Reference.root(),
10392
);
10493
elementFactory.addBundle(
10594
LinkedBundleContext(elementFactory, sdkBundle),

pkg/analyzer_cli/lib/src/build_mode.dart

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import 'package:analyzer/src/dart/analysis/file_state.dart';
1818
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
1919
import 'package:analyzer/src/dart/analysis/restricted_analysis_context.dart';
2020
import 'package:analyzer/src/dart/analysis/session.dart';
21-
import 'package:analyzer/src/dart/element/element.dart';
2221
import 'package:analyzer/src/dart/sdk/sdk.dart';
2322
import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
2423
import 'package:analyzer/src/generated/engine.dart';
@@ -534,11 +533,6 @@ class BuildMode with HasContextMixin {
534533
}
535534

536535
void _createLinkedElementFactory() {
537-
var rootReference = summary2.Reference.root();
538-
var dartCoreRef = rootReference.getChild('dart:core');
539-
dartCoreRef.getChild('dynamic').element = DynamicElementImpl.instance;
540-
dartCoreRef.getChild('Never').element = NeverElementImpl.instance;
541-
542536
var analysisContext = RestrictedAnalysisContext(
543537
SynchronousSession(analysisOptions, declaredVariables),
544538
sourceFactory,
@@ -547,7 +541,7 @@ class BuildMode with HasContextMixin {
547541
elementFactory = summary2.LinkedElementFactory(
548542
analysisContext,
549543
null,
550-
rootReference,
544+
summary2.Reference.root(),
551545
);
552546

553547
for (var bundle in summaryDataStore.bundles) {

0 commit comments

Comments
 (0)