| Index: pkg/compiler/lib/src/kernel/elements.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/elements.dart b/pkg/compiler/lib/src/kernel/elements.dart
|
| index 7f3fc4cfd029b4c8e6d759a5b4cde2b466eca1f8..997c0e37d00f8145016076dc199a35da442fd3a0 100644
|
| --- a/pkg/compiler/lib/src/kernel/elements.dart
|
| +++ b/pkg/compiler/lib/src/kernel/elements.dart
|
| @@ -18,11 +18,13 @@ class KLibrary implements LibraryEntity {
|
| }
|
|
|
| class KClass implements ClassEntity {
|
| + final KLibrary library;
|
| +
|
| /// Class index used for fast lookup in [KernelWorldBuilder].
|
| final int classIndex;
|
| final String name;
|
|
|
| - KClass(this.classIndex, this.name);
|
| + KClass(this.library, this.classIndex, this.name);
|
|
|
| @override
|
| bool get isClosure => false;
|
| @@ -31,11 +33,12 @@ class KClass implements ClassEntity {
|
| }
|
|
|
| abstract class KMember implements MemberEntity {
|
| + final KLibrary library;
|
| final KClass enclosingClass;
|
| final Name _name;
|
| final bool _isStatic;
|
|
|
| - KMember(this.enclosingClass, this._name, {bool isStatic: false})
|
| + KMember(this.library, this.enclosingClass, this._name, {bool isStatic: false})
|
| : _isStatic = isStatic;
|
|
|
| String get name => _name.text;
|
| @@ -74,16 +77,21 @@ abstract class KMember implements MemberEntity {
|
| }
|
|
|
| abstract class KFunction extends KMember implements FunctionEntity {
|
| - KFunction(KClass enclosingClass, Name name, {bool isStatic: false})
|
| - : super(enclosingClass, name, isStatic: isStatic);
|
| + final bool isExternal;
|
| +
|
| + KFunction(KLibrary library, KClass enclosingClass, Name name,
|
| + {bool isStatic: false, this.isExternal: false})
|
| + : super(library, enclosingClass, name, isStatic: isStatic);
|
| }
|
|
|
| abstract class KConstructor extends KFunction implements ConstructorEntity {
|
| /// Constructor index used for fast lookup in [KernelWorldBuilder].
|
| final int constructorIndex;
|
|
|
| - KConstructor(this.constructorIndex, KClass enclosingClass, Name name)
|
| - : super(enclosingClass, name);
|
| + KConstructor(this.constructorIndex, KClass enclosingClass, Name name,
|
| + {bool isExternal})
|
| + : super(enclosingClass.library, enclosingClass, name,
|
| + isExternal: isExternal);
|
|
|
| @override
|
| bool get isConstructor => true;
|
| @@ -101,8 +109,9 @@ abstract class KConstructor extends KFunction implements ConstructorEntity {
|
| }
|
|
|
| class KGenerativeConstructor extends KConstructor {
|
| - KGenerativeConstructor(int constructorIndex, KClass enclosingClass, Name name)
|
| - : super(constructorIndex, enclosingClass, name);
|
| + KGenerativeConstructor(int constructorIndex, KClass enclosingClass, Name name,
|
| + {bool isExternal})
|
| + : super(constructorIndex, enclosingClass, name, isExternal: isExternal);
|
|
|
| @override
|
| bool get isFactoryConstructor => false;
|
| @@ -112,8 +121,9 @@ class KGenerativeConstructor extends KConstructor {
|
| }
|
|
|
| class KFactoryConstructor extends KConstructor {
|
| - KFactoryConstructor(int constructorIndex, KClass enclosingClass, Name name)
|
| - : super(constructorIndex, enclosingClass, name);
|
| + KFactoryConstructor(int constructorIndex, KClass enclosingClass, Name name,
|
| + {bool isExternal})
|
| + : super(constructorIndex, enclosingClass, name, isExternal: isExternal);
|
|
|
| @override
|
| bool get isFactoryConstructor => true;
|
| @@ -123,8 +133,10 @@ class KFactoryConstructor extends KConstructor {
|
| }
|
|
|
| class KMethod extends KFunction {
|
| - KMethod(KClass enclosingClass, Name name, {bool isStatic})
|
| - : super(enclosingClass, name, isStatic: isStatic);
|
| + KMethod(KLibrary library, KClass enclosingClass, Name name,
|
| + {bool isStatic, bool isExternal})
|
| + : super(library, enclosingClass, name,
|
| + isStatic: isStatic, isExternal: isExternal);
|
|
|
| @override
|
| bool get isFunction => true;
|
| @@ -133,8 +145,10 @@ class KMethod extends KFunction {
|
| }
|
|
|
| class KGetter extends KFunction {
|
| - KGetter(KClass enclosingClass, Name name, {bool isStatic})
|
| - : super(enclosingClass, name, isStatic: isStatic);
|
| + KGetter(KLibrary library, KClass enclosingClass, Name name,
|
| + {bool isStatic, bool isExternal})
|
| + : super(library, enclosingClass, name,
|
| + isStatic: isStatic, isExternal: isExternal);
|
|
|
| @override
|
| bool get isGetter => true;
|
| @@ -143,8 +157,10 @@ class KGetter extends KFunction {
|
| }
|
|
|
| class KSetter extends KFunction {
|
| - KSetter(KClass enclosingClass, Name name, {bool isStatic})
|
| - : super(enclosingClass, name, isStatic: isStatic);
|
| + KSetter(KLibrary library, KClass enclosingClass, Name name,
|
| + {bool isStatic, bool isExternal})
|
| + : super(library, enclosingClass, name,
|
| + isStatic: isStatic, isExternal: isExternal);
|
|
|
| @override
|
| bool get isAssignable => true;
|
| @@ -160,9 +176,9 @@ class KField extends KMember implements FieldEntity {
|
| final int fieldIndex;
|
| final bool isAssignable;
|
|
|
| - KField(this.fieldIndex, KClass enclosingClass, Name name,
|
| + KField(this.fieldIndex, KLibrary library, KClass enclosingClass, Name name,
|
| {bool isStatic, this.isAssignable})
|
| - : super(enclosingClass, name, isStatic: isStatic);
|
| + : super(library, enclosingClass, name, isStatic: isStatic);
|
|
|
| @override
|
| bool get isField => true;
|
|
|