| Index: lib/compiler/implementation/elements/elements.dart
|
| diff --git a/lib/compiler/implementation/elements/elements.dart b/lib/compiler/implementation/elements/elements.dart
|
| index 12bde397404d3f540ec577175e2f5761b5bcd2f2..337d3f730560d268280727f1750c7271b13be473 100644
|
| --- a/lib/compiler/implementation/elements/elements.dart
|
| +++ b/lib/compiler/implementation/elements/elements.dart
|
| @@ -399,21 +399,21 @@ class CompilationUnitOverrideElement extends Element {
|
| }
|
|
|
| class LibraryElement extends ScopeContainerElement {
|
| + final Uri uri;
|
| CompilationUnitElement entryCompilationUnit;
|
| Link<CompilationUnitElement> compilationUnits =
|
| const EmptyLink<CompilationUnitElement>();
|
| -
|
| Link<ScriptTag> tags = const EmptyLink<ScriptTag>();
|
| ScriptTag libraryTag;
|
| bool canUseNative = false;
|
| LibraryElement patch = null;
|
|
|
| - LibraryElement(Script script)
|
| - : super(new SourceString(script.name), ElementKind.LIBRARY, null) {
|
| + LibraryElement(Script script, [Uri uri])
|
| + : this.uri = ((uri === null) ? script.uri : uri),
|
| + super(new SourceString(script.name), ElementKind.LIBRARY, null) {
|
| entryCompilationUnit = new CompilationUnitElement(script, this);
|
| }
|
|
|
| - Uri get uri() => entryCompilationUnit.script.uri;
|
|
|
| bool get isPatched() => patch !== null;
|
|
|
| @@ -1027,6 +1027,9 @@ class ClassElement extends ScopeContainerElement
|
|
|
| Link<Type> allSupertypes;
|
|
|
| + // Lazily applied patch of class members.
|
| + ClassElement patch = null;
|
| +
|
| ClassElement(SourceString name, Element enclosing, this.id)
|
| : super(name, ElementKind.CLASS, enclosing);
|
|
|
| @@ -1040,6 +1043,8 @@ class ClassElement extends ScopeContainerElement
|
| return type;
|
| }
|
|
|
| + bool get isPatched() => patch != null;
|
| +
|
| Link<Type> get typeVariables() => type.arguments;
|
|
|
| ClassElement ensureResolved(Compiler compiler) {
|
|
|