| Index: pkg/compiler/lib/src/resolution/scope.dart
|
| diff --git a/pkg/compiler/lib/src/resolution/scope.dart b/pkg/compiler/lib/src/resolution/scope.dart
|
| index 75c3de9b7dc0c5eda317ccbe01d97bbcb6b6f5b6..41df8033f6ef8b6710d5d7f0ab20b202471393f4 100644
|
| --- a/pkg/compiler/lib/src/resolution/scope.dart
|
| +++ b/pkg/compiler/lib/src/resolution/scope.dart
|
| @@ -58,14 +58,17 @@ class VariableDefinitionScope extends NestedScope {
|
| }
|
| }
|
|
|
| -/// [TypeVariablesScope] defines the outer scope in a context where some type
|
| -/// variables are declared and the entities in the enclosing scope are
|
| -/// available, but where locally declared and inherited members are not
|
| -/// available.
|
| -abstract class TypeVariablesScope extends NestedScope {
|
| - List<DartType> get typeVariables;
|
| -
|
| - TypeVariablesScope(Scope parent) : super(parent) {
|
| +/**
|
| + * [TypeDeclarationScope] defines the outer scope of a type declaration in
|
| + * which the declared type variables and the entities in the enclosing scope are
|
| + * available but where declared and inherited members are not available. This
|
| + * scope is only used for class declarations during resolution of the
|
| + * class hierarchy. In all other cases [ClassScope] is used.
|
| + */
|
| +class TypeDeclarationScope extends NestedScope {
|
| + final TypeDeclarationElement element;
|
| +
|
| + TypeDeclarationScope(parent, this.element) : super(parent) {
|
| assert(parent != null);
|
| }
|
|
|
| @@ -74,6 +77,7 @@ abstract class TypeVariablesScope extends NestedScope {
|
| }
|
|
|
| Element lookupTypeVariable(String name) {
|
| + List<DartType> typeVariables = element.typeVariables;
|
| for (TypeVariableType type in typeVariables) {
|
| if (type.name == name) {
|
| return type.element;
|
| @@ -83,22 +87,6 @@ abstract class TypeVariablesScope extends NestedScope {
|
| }
|
|
|
| Element localLookup(String name) => lookupTypeVariable(name);
|
| -}
|
| -
|
| -/**
|
| - * [TypeDeclarationScope] defines the outer scope of a type declaration in
|
| - * which the declared type variables and the entities in the enclosing scope are
|
| - * available but where declared and inherited members are not available. This
|
| - * scope is used for class declarations during resolution of the class hierarchy
|
| - * and when resolving typedef signatures. In other cases [ClassScope] is used.
|
| - */
|
| -class TypeDeclarationScope extends TypeVariablesScope {
|
| - final GenericElement element;
|
| -
|
| - @override
|
| - List<DartType> get typeVariables => element.typeVariables;
|
| -
|
| - TypeDeclarationScope(Scope parent, this.element) : super(parent);
|
|
|
| String toString() => 'TypeDeclarationScope($element)';
|
| }
|
|
|