OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer.src.dart.element.element; | 5 library analyzer.src.dart.element.element; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import 'dart:math' show min; | 8 import 'dart:math' show min; |
9 | 9 |
10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
(...skipping 5011 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5022 } | 5022 } |
5023 | 5023 |
5024 /** | 5024 /** |
5025 * A function type alias of the form | 5025 * A function type alias of the form |
5026 * `typedef` identifier typeParameters = genericFunctionType; | 5026 * `typedef` identifier typeParameters = genericFunctionType; |
5027 * | 5027 * |
5028 * Clients may not extend, implement or mix-in this class. | 5028 * Clients may not extend, implement or mix-in this class. |
5029 */ | 5029 */ |
5030 class GenericTypeAliasElementImpl extends ElementImpl | 5030 class GenericTypeAliasElementImpl extends ElementImpl |
5031 with TypeParameterizedElementMixin | 5031 with TypeParameterizedElementMixin |
5032 implements FunctionTypeAliasElement { | 5032 implements GenericTypeAliasElement { |
5033 /** | 5033 /** |
5034 * The unlinked representation of the type in the summary. | 5034 * The unlinked representation of the type in the summary. |
5035 */ | 5035 */ |
5036 final UnlinkedTypedef _unlinkedTypedef; | 5036 final UnlinkedTypedef _unlinkedTypedef; |
5037 | 5037 |
5038 /** | 5038 /** |
5039 * The element representing the generic function type. | 5039 * The element representing the generic function type. |
5040 */ | 5040 */ |
5041 GenericFunctionTypeElement _function; | 5041 GenericFunctionTypeElement _function; |
5042 | 5042 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5090 CompilationUnitElement get enclosingElement => | 5090 CompilationUnitElement get enclosingElement => |
5091 super.enclosingElement as CompilationUnitElement; | 5091 super.enclosingElement as CompilationUnitElement; |
5092 | 5092 |
5093 @override | 5093 @override |
5094 TypeParameterizedElementMixin get enclosingTypeParameterContext => null; | 5094 TypeParameterizedElementMixin get enclosingTypeParameterContext => null; |
5095 | 5095 |
5096 @override | 5096 @override |
5097 CompilationUnitElementImpl get enclosingUnit => | 5097 CompilationUnitElementImpl get enclosingUnit => |
5098 _enclosingElement as CompilationUnitElementImpl; | 5098 _enclosingElement as CompilationUnitElementImpl; |
5099 | 5099 |
5100 /** | 5100 @override |
5101 * Return the generic function type element representing the generic function | |
5102 * type on the right side of the equals. | |
5103 */ | |
5104 GenericFunctionTypeElement get function { | 5101 GenericFunctionTypeElement get function { |
5105 if (_function == null && _unlinkedTypedef != null) { | 5102 if (_function == null && _unlinkedTypedef != null) { |
5106 DartType type = enclosingUnit.resynthesizerContext.resolveTypeRef( | 5103 DartType type = enclosingUnit.resynthesizerContext.resolveTypeRef( |
5107 _unlinkedTypedef.returnType, this, | 5104 _unlinkedTypedef.returnType, this, |
5108 declaredType: true); | 5105 declaredType: true); |
5109 if (type is FunctionType) { | 5106 if (type is FunctionType) { |
5110 Element element = type.element; | 5107 Element element = type.element; |
5111 if (element is GenericFunctionTypeElement) { | 5108 if (element is GenericFunctionTypeElement) { |
5112 (element as GenericFunctionTypeElementImpl).enclosingElement = this; | 5109 (element as GenericFunctionTypeElementImpl).enclosingElement = this; |
5113 _function = element; | 5110 _function = element; |
(...skipping 3980 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9094 | 9091 |
9095 @override | 9092 @override |
9096 void visitElement(Element element) { | 9093 void visitElement(Element element) { |
9097 int offset = element.nameOffset; | 9094 int offset = element.nameOffset; |
9098 if (offset != -1) { | 9095 if (offset != -1) { |
9099 map[offset] = element; | 9096 map[offset] = element; |
9100 } | 9097 } |
9101 super.visitElement(element); | 9098 super.visitElement(element); |
9102 } | 9099 } |
9103 } | 9100 } |
OLD | NEW |