| 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 3864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3875 DartType get returnType { | 3875 DartType get returnType { |
| 3876 if (serializedExecutable != null && | 3876 if (serializedExecutable != null && |
| 3877 _declaredReturnType == null && | 3877 _declaredReturnType == null && |
| 3878 _returnType == null) { | 3878 _returnType == null) { |
| 3879 bool isSetter = | 3879 bool isSetter = |
| 3880 serializedExecutable.kind == UnlinkedExecutableKind.setter; | 3880 serializedExecutable.kind == UnlinkedExecutableKind.setter; |
| 3881 _returnType = enclosingUnit.resynthesizerContext.resolveLinkedType( | 3881 _returnType = enclosingUnit.resynthesizerContext.resolveLinkedType( |
| 3882 serializedExecutable.inferredReturnTypeSlot, typeParameterContext); | 3882 serializedExecutable.inferredReturnTypeSlot, typeParameterContext); |
| 3883 _declaredReturnType = enclosingUnit.resynthesizerContext.resolveTypeRef( | 3883 _declaredReturnType = enclosingUnit.resynthesizerContext.resolveTypeRef( |
| 3884 serializedExecutable.returnType, typeParameterContext, | 3884 serializedExecutable.returnType, typeParameterContext, |
| 3885 defaultVoid: isSetter && context.analysisOptions.strongMode); | 3885 defaultVoid: isSetter && context.analysisOptions.strongMode, |
| 3886 declaredType: true); |
| 3886 } | 3887 } |
| 3887 return _returnType ?? _declaredReturnType; | 3888 return _returnType ?? _declaredReturnType; |
| 3888 } | 3889 } |
| 3889 | 3890 |
| 3890 void set returnType(DartType returnType) { | 3891 void set returnType(DartType returnType) { |
| 3891 _assertNotResynthesized(serializedExecutable); | 3892 _assertNotResynthesized(serializedExecutable); |
| 3892 _returnType = returnType; | 3893 _returnType = returnType; |
| 3893 } | 3894 } |
| 3894 | 3895 |
| 3895 @override | 3896 @override |
| (...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4747 for (ParameterElement parameter in parameters) { | 4748 for (ParameterElement parameter in parameters) { |
| 4748 (parameter as ParameterElementImpl).enclosingElement = this; | 4749 (parameter as ParameterElementImpl).enclosingElement = this; |
| 4749 } | 4750 } |
| 4750 } | 4751 } |
| 4751 this._parameters = parameters; | 4752 this._parameters = parameters; |
| 4752 } | 4753 } |
| 4753 | 4754 |
| 4754 @override | 4755 @override |
| 4755 DartType get returnType { | 4756 DartType get returnType { |
| 4756 if (_unlinkedTypedef != null && _returnType == null) { | 4757 if (_unlinkedTypedef != null && _returnType == null) { |
| 4757 _returnType = enclosingUnit.resynthesizerContext | 4758 _returnType = enclosingUnit.resynthesizerContext.resolveTypeRef( |
| 4758 .resolveTypeRef(_unlinkedTypedef.returnType, this); | 4759 _unlinkedTypedef.returnType, this, |
| 4760 declaredType: true); |
| 4759 } | 4761 } |
| 4760 return _returnType; | 4762 return _returnType; |
| 4761 } | 4763 } |
| 4762 | 4764 |
| 4763 void set returnType(DartType returnType) { | 4765 void set returnType(DartType returnType) { |
| 4764 _assertNotResynthesized(_unlinkedTypedef); | 4766 _assertNotResynthesized(_unlinkedTypedef); |
| 4765 _returnType = returnType; | 4767 _returnType = returnType; |
| 4766 } | 4768 } |
| 4767 | 4769 |
| 4768 @override | 4770 @override |
| (...skipping 2125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6894 return _unlinkedVariable.nameOffset; | 6896 return _unlinkedVariable.nameOffset; |
| 6895 } | 6897 } |
| 6896 return offset; | 6898 return offset; |
| 6897 } | 6899 } |
| 6898 | 6900 |
| 6899 @override | 6901 @override |
| 6900 DartType get type { | 6902 DartType get type { |
| 6901 if (_unlinkedVariable != null && _declaredType == null && _type == null) { | 6903 if (_unlinkedVariable != null && _declaredType == null && _type == null) { |
| 6902 _type = enclosingUnit.resynthesizerContext.resolveLinkedType( | 6904 _type = enclosingUnit.resynthesizerContext.resolveLinkedType( |
| 6903 _unlinkedVariable.inferredTypeSlot, typeParameterContext); | 6905 _unlinkedVariable.inferredTypeSlot, typeParameterContext); |
| 6904 _declaredType = enclosingUnit.resynthesizerContext | 6906 _declaredType = enclosingUnit.resynthesizerContext.resolveTypeRef( |
| 6905 .resolveTypeRef(_unlinkedVariable.type, typeParameterContext); | 6907 _unlinkedVariable.type, typeParameterContext, |
| 6908 declaredType: true); |
| 6906 } | 6909 } |
| 6907 return super.type; | 6910 return super.type; |
| 6908 } | 6911 } |
| 6909 | 6912 |
| 6910 void set type(DartType type) { | 6913 void set type(DartType type) { |
| 6911 _assertNotResynthesized(_unlinkedVariable); | 6914 _assertNotResynthesized(_unlinkedVariable); |
| 6912 _type = type; | 6915 _type = type; |
| 6913 } | 6916 } |
| 6914 | 6917 |
| 6915 /** | 6918 /** |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7382 parameterTypeElement.returnType = enclosingUnit.resynthesizerContext | 7385 parameterTypeElement.returnType = enclosingUnit.resynthesizerContext |
| 7383 .resolveTypeRef(_unlinkedParam.type, typeParameterContext); | 7386 .resolveTypeRef(_unlinkedParam.type, typeParameterContext); |
| 7384 FunctionTypeImpl parameterType = | 7387 FunctionTypeImpl parameterType = |
| 7385 new FunctionTypeImpl.elementWithNameAndArgs(parameterTypeElement, | 7388 new FunctionTypeImpl.elementWithNameAndArgs(parameterTypeElement, |
| 7386 null, typeParameterContext.allTypeParameterTypes, false); | 7389 null, typeParameterContext.allTypeParameterTypes, false); |
| 7387 parameterTypeElement.type = parameterType; | 7390 parameterTypeElement.type = parameterType; |
| 7388 _type = parameterType; | 7391 _type = parameterType; |
| 7389 } else { | 7392 } else { |
| 7390 _type = enclosingUnit.resynthesizerContext.resolveLinkedType( | 7393 _type = enclosingUnit.resynthesizerContext.resolveLinkedType( |
| 7391 _unlinkedParam.inferredTypeSlot, typeParameterContext); | 7394 _unlinkedParam.inferredTypeSlot, typeParameterContext); |
| 7392 _declaredType = enclosingUnit.resynthesizerContext | 7395 _declaredType = enclosingUnit.resynthesizerContext.resolveTypeRef( |
| 7393 .resolveTypeRef(_unlinkedParam.type, typeParameterContext); | 7396 _unlinkedParam.type, typeParameterContext, |
| 7397 declaredType: true); |
| 7394 } | 7398 } |
| 7395 } | 7399 } |
| 7396 } | 7400 } |
| 7397 | 7401 |
| 7398 /** | 7402 /** |
| 7399 * Create and return [ParameterElement]s for the given [unlinkedParameters]. | 7403 * Create and return [ParameterElement]s for the given [unlinkedParameters]. |
| 7400 */ | 7404 */ |
| 7401 static List<ParameterElement> resynthesizeList( | 7405 static List<ParameterElement> resynthesizeList( |
| 7402 List<UnlinkedParam> unlinkedParameters, ElementImpl enclosingElement, | 7406 List<UnlinkedParam> unlinkedParameters, ElementImpl enclosingElement, |
| 7403 {bool synthetic: false}) { | 7407 {bool synthetic: false}) { |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7941 | 7945 |
| 7942 /** | 7946 /** |
| 7943 * Resolve an [EntityRef] into a type. If the reference is | 7947 * Resolve an [EntityRef] into a type. If the reference is |
| 7944 * unresolved, return [DynamicTypeImpl.instance]. | 7948 * unresolved, return [DynamicTypeImpl.instance]. |
| 7945 * | 7949 * |
| 7946 * TODO(paulberry): or should we have a class representing an | 7950 * TODO(paulberry): or should we have a class representing an |
| 7947 * unresolved type, for consistency with the full element model? | 7951 * unresolved type, for consistency with the full element model? |
| 7948 */ | 7952 */ |
| 7949 DartType resolveTypeRef( | 7953 DartType resolveTypeRef( |
| 7950 EntityRef type, TypeParameterizedElementMixin typeParameterContext, | 7954 EntityRef type, TypeParameterizedElementMixin typeParameterContext, |
| 7951 {bool defaultVoid: false, bool instantiateToBoundsAllowed: true}); | 7955 {bool defaultVoid: false, |
| 7956 bool instantiateToBoundsAllowed: true, |
| 7957 bool declaredType: false}); |
| 7952 } | 7958 } |
| 7953 | 7959 |
| 7954 /** | 7960 /** |
| 7955 * A concrete implementation of a [ShowElementCombinator]. | 7961 * A concrete implementation of a [ShowElementCombinator]. |
| 7956 */ | 7962 */ |
| 7957 class ShowElementCombinatorImpl implements ShowElementCombinator { | 7963 class ShowElementCombinatorImpl implements ShowElementCombinator { |
| 7958 /** | 7964 /** |
| 7959 * The unlinked representation of the combinator in the summary. | 7965 * The unlinked representation of the combinator in the summary. |
| 7960 */ | 7966 */ |
| 7961 final UnlinkedCombinator _unlinkedCombinator; | 7967 final UnlinkedCombinator _unlinkedCombinator; |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8141 isSynthetic = true; | 8147 isSynthetic = true; |
| 8142 } | 8148 } |
| 8143 | 8149 |
| 8144 DartType get bound { | 8150 DartType get bound { |
| 8145 if (_unlinkedTypeParam != null) { | 8151 if (_unlinkedTypeParam != null) { |
| 8146 if (_unlinkedTypeParam.bound == null) { | 8152 if (_unlinkedTypeParam.bound == null) { |
| 8147 return null; | 8153 return null; |
| 8148 } | 8154 } |
| 8149 return _bound ??= enclosingUnit.resynthesizerContext.resolveTypeRef( | 8155 return _bound ??= enclosingUnit.resynthesizerContext.resolveTypeRef( |
| 8150 _unlinkedTypeParam.bound, enclosingElement, | 8156 _unlinkedTypeParam.bound, enclosingElement, |
| 8151 instantiateToBoundsAllowed: false); | 8157 instantiateToBoundsAllowed: false, declaredType: true); |
| 8152 } | 8158 } |
| 8153 return _bound; | 8159 return _bound; |
| 8154 } | 8160 } |
| 8155 | 8161 |
| 8156 void set bound(DartType bound) { | 8162 void set bound(DartType bound) { |
| 8157 _assertNotResynthesized(_unlinkedTypeParam); | 8163 _assertNotResynthesized(_unlinkedTypeParam); |
| 8158 _bound = bound; | 8164 _bound = bound; |
| 8159 } | 8165 } |
| 8160 | 8166 |
| 8161 @override | 8167 @override |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8625 | 8631 |
| 8626 @override | 8632 @override |
| 8627 void visitElement(Element element) { | 8633 void visitElement(Element element) { |
| 8628 int offset = element.nameOffset; | 8634 int offset = element.nameOffset; |
| 8629 if (offset != -1) { | 8635 if (offset != -1) { |
| 8630 map[offset] = element; | 8636 map[offset] = element; |
| 8631 } | 8637 } |
| 8632 super.visitElement(element); | 8638 super.visitElement(element); |
| 8633 } | 8639 } |
| 8634 } | 8640 } |
| OLD | NEW |