Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Unified Diff: pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart

Issue 2742283002: Add ConstantUse to WorldImpact (Closed)
Patch Set: Cleanup. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
diff --git a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
index bdafacedbbd7a54d5058ffbf5b05f77c32569512..0e5d8699740724c769e9512ace135bfa7171005c 100644
--- a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
+++ b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
@@ -5,14 +5,14 @@
import '../common/backend_api.dart';
import '../common/resolution.dart';
import '../common_elements.dart';
+import '../constants/constant_system.dart';
import '../constants/values.dart';
import '../elements/resolution_types.dart';
import '../elements/elements.dart';
import '../universe/call_structure.dart';
-import '../universe/use.dart' show StaticUse;
+import '../universe/use.dart' show ConstantUse, StaticUse;
import '../universe/world_impact.dart'
show WorldImpact, StagedWorldImpactBuilder;
-import 'backend.dart';
import 'backend_usage.dart' show BackendUsageBuilder;
import 'backend_helpers.dart';
import 'native_data.dart';
@@ -89,15 +89,15 @@ class CustomElementsResolutionAnalysis extends CustomElementsAnalysisBase {
final CustomElementsAnalysisJoin join;
CustomElementsResolutionAnalysis(
- JavaScriptBackend backend,
Resolution resolution,
+ ConstantSystem constantSystem,
CommonElements commonElements,
BackendClasses backendClasses,
BackendHelpers helpers,
NativeClassData nativeData,
BackendUsageBuilder backendUsageBuilder)
- : join = new CustomElementsAnalysisJoin(
- backend, resolution, commonElements, backendClasses, nativeData,
+ : join = new CustomElementsAnalysisJoin(resolution, constantSystem,
+ commonElements, backendClasses, nativeData,
backendUsageBuilder: backendUsageBuilder),
super(resolution, helpers, nativeData) {
// TODO(sra): Remove this work-around. We should mark allClassesSelected in
@@ -127,14 +127,14 @@ class CustomElementsCodegenAnalysis extends CustomElementsAnalysisBase {
final CustomElementsAnalysisJoin join;
CustomElementsCodegenAnalysis(
- JavaScriptBackend backend,
Resolution resolution,
+ ConstantSystem constantSystem,
CommonElements commonElements,
BackendClasses backendClasses,
BackendHelpers helpers,
NativeClassData nativeData)
- : join = new CustomElementsAnalysisJoin(
- backend, resolution, commonElements, backendClasses, nativeData),
+ : join = new CustomElementsAnalysisJoin(resolution, constantSystem,
+ commonElements, backendClasses, nativeData),
super(resolution, helpers, nativeData) {
// TODO(sra): Remove this work-around. We should mark allClassesSelected in
// both joins only when we see a construct generating an unknown [Type] but
@@ -144,7 +144,7 @@ class CustomElementsCodegenAnalysis extends CustomElementsAnalysisBase {
join.allClassesSelected = true;
}
- void registerTypeConstant(Element element) {
+ void registerTypeConstant(ClassElement element) {
assert(element.isClass);
join.selectedClasses.add(element);
}
@@ -159,8 +159,8 @@ class CustomElementsCodegenAnalysis extends CustomElementsAnalysisBase {
}
class CustomElementsAnalysisJoin {
- final JavaScriptBackend _backend;
final Resolution _resolution;
+ final ConstantSystem _constantSystem;
final CommonElements _commonElements;
final BackendClasses _backendClasses;
final NativeClassData _nativeData;
@@ -186,7 +186,7 @@ class CustomElementsAnalysisJoin {
// ClassesOutput: classes requiring metadata.
final activeClasses = new Set<ClassElement>();
- CustomElementsAnalysisJoin(this._backend, this._resolution,
+ CustomElementsAnalysisJoin(this._resolution, this._constantSystem,
this._commonElements, this._backendClasses, this._nativeData,
{BackendUsageBuilder backendUsageBuilder})
: this._backendUsageBuilder = backendUsageBuilder,
@@ -218,9 +218,8 @@ class CustomElementsAnalysisJoin {
// Force the generaton of the type constant that is the key to an entry
// in the generated table.
ConstantValue constant = _makeTypeConstant(classElement);
- _backend.computeImpactForCompileTimeConstant(constant, impactBuilder,
- forResolution: forResolution);
- _backend.addCompileTimeConstantForEmission(constant);
+ impactBuilder
+ .registerConstantUse(new ConstantUse.customElements(constant));
}
}
activeClasses.addAll(newActiveClasses);
@@ -230,8 +229,8 @@ class CustomElementsAnalysisJoin {
TypeConstantValue _makeTypeConstant(ClassElement element) {
ResolutionDartType elementType = element.rawType;
- return _backend.constantSystem
- .createType(_commonElements, _backendClasses, elementType);
+ return _constantSystem.createType(
+ _commonElements, _backendClasses, elementType);
}
List<ConstructorElement> computeEscapingConstructors(

Powered by Google App Engine
This is Rietveld 408576698