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

Unified Diff: sdk/lib/_internal/compiler/implementation/universe/universe.dart

Issue 12226074: Cleanup universe to not have backend related things. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 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: sdk/lib/_internal/compiler/implementation/universe/universe.dart
===================================================================
--- sdk/lib/_internal/compiler/implementation/universe/universe.dart (revision 18239)
+++ sdk/lib/_internal/compiler/implementation/universe/universe.dart (working copy)
@@ -35,6 +35,18 @@
final Map<SourceString, Set<Selector>> invokedNames;
final Map<SourceString, Set<Selector>> invokedGetters;
final Map<SourceString, Set<Selector>> invokedSetters;
+
+ /**
+ * Fields accessed. Currently only the codegen knows this
+ * information. The resolver is too conservative when seeing a
+ * getter and only registers an invoked getter.
+ */
+ final Map<SourceString, Set<Selector>> fieldGetters;
+
+ /**
+ * Fields set. See comment in [fieldGetters].
+ */
+ final Map<SourceString, Set<Selector>> fieldSetters;
final Set<DartType> isChecks;
Universe() : instantiatedClasses = new Set<ClassElement>(),
@@ -42,6 +54,8 @@
staticFunctionsNeedingGetter = new Set<FunctionElement>(),
invokedNames = new Map<SourceString, Set<Selector>>(),
invokedGetters = new Map<SourceString, Set<Selector>>(),
+ fieldGetters = new Map<SourceString, Set<Selector>>(),
+ fieldSetters = new Map<SourceString, Set<Selector>>(),
invokedSetters = new Map<SourceString, Set<Selector>>(),
isChecks = new Set<DartType>();
@@ -66,47 +80,7 @@
bool hasInvokedSetter(Element member, Compiler compiler) {
return hasMatchingSelector(invokedSetters[member.name], member, compiler);
}
-}
-/// [Universe] which is specific to resolution.
-class ResolutionUniverse extends Universe {
-}
-
-/// [Universe] which is specific to code generation.
-class CodegenUniverse extends Universe {
- /**
- * Documentation wanted -- johnniwinther
- *
- * Invariant: Key elements are declaration elements.
- */
- Map<Element, js.Expression> generatedCode;
-
- /**
- * Documentation wanted -- johnniwinther
- *
- * Invariant: Key elements are declaration elements.
- */
- Map<Element, js.Expression> generatedBailoutCode;
-
- final Map<SourceString, Set<Selector>> fieldGetters;
- final Map<SourceString, Set<Selector>> fieldSetters;
-
- CodegenUniverse()
- : generatedCode = new Map<Element, js.Expression>(),
- generatedBailoutCode = new Map<Element, js.Expression>(),
- fieldGetters = new Map<SourceString, Set<Selector>>(),
- fieldSetters = new Map<SourceString, Set<Selector>>();
-
- void addGeneratedCode(CodegenWorkItem work, js.Expression code) {
- assert(invariant(work.element, work.element.isDeclaration));
- generatedCode[work.element] = code;
- }
-
- void addBailoutCode(CodegenWorkItem work, js.Expression code) {
- assert(invariant(work.element, work.element.isDeclaration));
- generatedBailoutCode[work.element] = code;
- }
-
bool hasFieldGetter(Element member, Compiler compiler) {
return hasMatchingSelector(fieldGetters[member.name], member, compiler);
}

Powered by Google App Engine
This is Rietveld 408576698