Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: pkg/analyzer/lib/src/dart/element/element.dart

Issue 2986093002: Revert two Kernel changes that were causing test failures. (Closed)
Patch Set: Revert "Migrate language/async_backwards... ... language/async_star_take..." Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pkg/analyzer/test/src/summary/resynthesize_common.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1665 matching lines...) Expand 10 before | Expand all | Expand 10 after
1676 */ 1676 */
1677 void set functions(List<FunctionElement> functions) { 1677 void set functions(List<FunctionElement> functions) {
1678 for (FunctionElement function in functions) { 1678 for (FunctionElement function in functions) {
1679 (function as FunctionElementImpl).enclosingElement = this; 1679 (function as FunctionElementImpl).enclosingElement = this;
1680 } 1680 }
1681 this._functions = functions; 1681 this._functions = functions;
1682 } 1682 }
1683 1683
1684 @override 1684 @override
1685 List<FunctionTypeAliasElement> get functionTypeAliases { 1685 List<FunctionTypeAliasElement> get functionTypeAliases {
1686 if (_kernelContext != null) {
1687 _typeAliases ??= _kernelContext.library.typedefs
1688 .map((k) => new FunctionTypeAliasElementImpl.forKernel(this, k))
1689 .toList(growable: false);
1690 }
1691 if (_unlinkedUnit != null) { 1686 if (_unlinkedUnit != null) {
1692 _typeAliases ??= _unlinkedUnit.typedefs.map((t) { 1687 _typeAliases ??= _unlinkedUnit.typedefs.map((t) {
1693 if (t.style == TypedefStyle.functionType) { 1688 if (t.style == TypedefStyle.functionType) {
1694 return new FunctionTypeAliasElementImpl.forSerialized(t, this); 1689 return new FunctionTypeAliasElementImpl.forSerialized(t, this);
1695 } else if (t.style == TypedefStyle.genericFunctionType) { 1690 } else if (t.style == TypedefStyle.genericFunctionType) {
1696 return new GenericTypeAliasElementImpl.forSerialized(t, this); 1691 return new GenericTypeAliasElementImpl.forSerialized(t, this);
1697 } 1692 }
1698 }).toList(growable: false); 1693 }).toList(growable: false);
1699 } 1694 }
1700 return _typeAliases ?? const <FunctionTypeAliasElement>[]; 1695 return _typeAliases ?? const <FunctionTypeAliasElement>[];
(...skipping 2266 matching lines...) Expand 10 before | Expand all | Expand 10 after
3967 return _kernel.name.name; 3962 return _kernel.name.name;
3968 } 3963 }
3969 if (serializedExecutable != null) { 3964 if (serializedExecutable != null) {
3970 return serializedExecutable.name; 3965 return serializedExecutable.name;
3971 } 3966 }
3972 return super.displayName; 3967 return super.displayName;
3973 } 3968 }
3974 3969
3975 @override 3970 @override
3976 String get documentationComment { 3971 String get documentationComment {
3977 if (_kernel != null) {
3978 return _kernel.documentationComment;
3979 }
3980 if (serializedExecutable != null) { 3972 if (serializedExecutable != null) {
3981 return serializedExecutable?.documentationComment?.text; 3973 return serializedExecutable?.documentationComment?.text;
3982 } 3974 }
3983 return super.documentationComment; 3975 return super.documentationComment;
3984 } 3976 }
3985 3977
3986 /** 3978 /**
3987 * Set whether this executable element is external. 3979 * Set whether this executable element is external.
3988 */ 3980 */
3989 void set external(bool isExternal) { 3981 void set external(bool isExternal) {
(...skipping 932 matching lines...) Expand 10 before | Expand all | Expand 10 after
4922 */ 4914 */
4923 class FunctionTypeAliasElementImpl extends ElementImpl 4915 class FunctionTypeAliasElementImpl extends ElementImpl
4924 with TypeParameterizedElementMixin 4916 with TypeParameterizedElementMixin
4925 implements FunctionTypeAliasElement { 4917 implements FunctionTypeAliasElement {
4926 /** 4918 /**
4927 * The unlinked representation of the type in the summary. 4919 * The unlinked representation of the type in the summary.
4928 */ 4920 */
4929 final UnlinkedTypedef _unlinkedTypedef; 4921 final UnlinkedTypedef _unlinkedTypedef;
4930 4922
4931 /** 4923 /**
4932 * The kernel of the element.
4933 */
4934 final kernel.Typedef _kernel;
4935
4936 /**
4937 * A list containing all of the parameters defined by this type alias. 4924 * A list containing all of the parameters defined by this type alias.
4938 */ 4925 */
4939 List<ParameterElement> _parameters; 4926 List<ParameterElement> _parameters;
4940 4927
4941 /** 4928 /**
4942 * The return type defined by this type alias. 4929 * The return type defined by this type alias.
4943 */ 4930 */
4944 DartType _returnType; 4931 DartType _returnType;
4945 4932
4946 /** 4933 /**
4947 * The type of function defined by this type alias. 4934 * The type of function defined by this type alias.
4948 */ 4935 */
4949 FunctionType _type; 4936 FunctionType _type;
4950 4937
4951 /** 4938 /**
4952 * Initialize a newly created type alias element to have the given name. 4939 * Initialize a newly created type alias element to have the given name.
4953 * 4940 *
4954 * [name] the name of this element 4941 * [name] the name of this element
4955 * [nameOffset] the offset of the name of this element in the file that 4942 * [nameOffset] the offset of the name of this element in the file that
4956 * contains the declaration of this element 4943 * contains the declaration of this element
4957 */ 4944 */
4958 FunctionTypeAliasElementImpl(String name, int nameOffset) 4945 FunctionTypeAliasElementImpl(String name, int nameOffset)
4959 : _unlinkedTypedef = null, 4946 : _unlinkedTypedef = null,
4960 _kernel = null,
4961 super(name, nameOffset); 4947 super(name, nameOffset);
4962 4948
4963 /** 4949 /**
4964 * Initialize using the given kernel.
4965 */
4966 FunctionTypeAliasElementImpl.forKernel(
4967 CompilationUnitElementImpl enclosingUnit, this._kernel)
4968 : _unlinkedTypedef = null,
4969 super.forSerialized(enclosingUnit);
4970
4971 /**
4972 * Initialize a newly created type alias element to have the given [name]. 4950 * Initialize a newly created type alias element to have the given [name].
4973 */ 4951 */
4974 FunctionTypeAliasElementImpl.forNode(Identifier name) 4952 FunctionTypeAliasElementImpl.forNode(Identifier name)
4975 : _unlinkedTypedef = null, 4953 : _unlinkedTypedef = null,
4976 _kernel = null,
4977 super.forNode(name); 4954 super.forNode(name);
4978 4955
4979 /** 4956 /**
4980 * Initialize using the given serialized information. 4957 * Initialize using the given serialized information.
4981 */ 4958 */
4982 FunctionTypeAliasElementImpl.forSerialized( 4959 FunctionTypeAliasElementImpl.forSerialized(
4983 this._unlinkedTypedef, CompilationUnitElementImpl enclosingUnit) 4960 this._unlinkedTypedef, CompilationUnitElementImpl enclosingUnit)
4984 : _kernel = null, 4961 : super.forSerialized(enclosingUnit);
4985 super.forSerialized(enclosingUnit);
4986 4962
4987 @override 4963 @override
4988 int get codeLength { 4964 int get codeLength {
4989 if (_unlinkedTypedef != null) { 4965 if (_unlinkedTypedef != null) {
4990 return _unlinkedTypedef.codeRange?.length; 4966 return _unlinkedTypedef.codeRange?.length;
4991 } 4967 }
4992 return super.codeLength; 4968 return super.codeLength;
4993 } 4969 }
4994 4970
4995 @override 4971 @override
(...skipping 20 matching lines...) Expand all
5016 super.enclosingElement as CompilationUnitElement; 4992 super.enclosingElement as CompilationUnitElement;
5017 4993
5018 @override 4994 @override
5019 TypeParameterizedElementMixin get enclosingTypeParameterContext => null; 4995 TypeParameterizedElementMixin get enclosingTypeParameterContext => null;
5020 4996
5021 @override 4997 @override
5022 CompilationUnitElementImpl get enclosingUnit => 4998 CompilationUnitElementImpl get enclosingUnit =>
5023 _enclosingElement as CompilationUnitElementImpl; 4999 _enclosingElement as CompilationUnitElementImpl;
5024 5000
5025 @override 5001 @override
5026 List<kernel.TypeParameter> get kernelTypeParams => _kernel?.typeParameters; 5002 List<kernel.TypeParameter> get kernelTypeParams => null;
5027 5003
5028 @override 5004 @override
5029 ElementKind get kind => ElementKind.FUNCTION_TYPE_ALIAS; 5005 ElementKind get kind => ElementKind.FUNCTION_TYPE_ALIAS;
5030 5006
5031 @override 5007 @override
5032 List<ElementAnnotation> get metadata { 5008 List<ElementAnnotation> get metadata {
5033 if (_unlinkedTypedef != null) { 5009 if (_unlinkedTypedef != null) {
5034 return _metadata ??= 5010 return _metadata ??=
5035 _buildAnnotations(enclosingUnit, _unlinkedTypedef.annotations); 5011 _buildAnnotations(enclosingUnit, _unlinkedTypedef.annotations);
5036 } 5012 }
5037 return super.metadata; 5013 return super.metadata;
5038 } 5014 }
5039 5015
5040 @override 5016 @override
5041 String get name { 5017 String get name {
5042 if (_kernel != null) {
5043 return _kernel.name;
5044 }
5045 if (_unlinkedTypedef != null) { 5018 if (_unlinkedTypedef != null) {
5046 return _unlinkedTypedef.name; 5019 return _unlinkedTypedef.name;
5047 } 5020 }
5048 return super.name; 5021 return super.name;
5049 } 5022 }
5050 5023
5051 @override 5024 @override
5052 int get nameOffset { 5025 int get nameOffset {
5053 int offset = super.nameOffset; 5026 int offset = super.nameOffset;
5054 if (offset == 0 && _unlinkedTypedef != null) { 5027 if (offset == 0 && _unlinkedTypedef != null) {
5055 return _unlinkedTypedef.nameOffset; 5028 return _unlinkedTypedef.nameOffset;
5056 } 5029 }
5057 return offset; 5030 return offset;
5058 } 5031 }
5059 5032
5060 @override 5033 @override
5061 List<ParameterElement> get parameters { 5034 List<ParameterElement> get parameters {
5062 if (_kernel != null) {
5063 _parameters ??= ParameterElementImpl.forKernelParameters(
5064 this,
5065 _kernel.requiredParameterCount,
5066 _kernel.positionalParameters,
5067 _kernel.namedParameters);
5068 }
5069 if (_unlinkedTypedef != null) { 5035 if (_unlinkedTypedef != null) {
5070 _parameters ??= ParameterElementImpl.resynthesizeList( 5036 _parameters ??= ParameterElementImpl.resynthesizeList(
5071 _unlinkedTypedef.parameters, this); 5037 _unlinkedTypedef.parameters, this);
5072 } 5038 }
5073 return _parameters ?? const <ParameterElement>[]; 5039 return _parameters ?? const <ParameterElement>[];
5074 } 5040 }
5075 5041
5076 /** 5042 /**
5077 * Set the parameters defined by this type alias to the given [parameters]. 5043 * Set the parameters defined by this type alias to the given [parameters].
5078 */ 5044 */
5079 void set parameters(List<ParameterElement> parameters) { 5045 void set parameters(List<ParameterElement> parameters) {
5080 _assertNotResynthesized(_unlinkedTypedef); 5046 _assertNotResynthesized(_unlinkedTypedef);
5081 if (parameters != null) { 5047 if (parameters != null) {
5082 for (ParameterElement parameter in parameters) { 5048 for (ParameterElement parameter in parameters) {
5083 (parameter as ParameterElementImpl).enclosingElement = this; 5049 (parameter as ParameterElementImpl).enclosingElement = this;
5084 } 5050 }
5085 } 5051 }
5086 this._parameters = parameters; 5052 this._parameters = parameters;
5087 } 5053 }
5088 5054
5089 @override 5055 @override
5090 DartType get returnType { 5056 DartType get returnType {
5091 if (_returnType == null) { 5057 if (_unlinkedTypedef != null && _returnType == null) {
5092 if (_kernel != null) { 5058 _returnType = enclosingUnit.resynthesizerContext.resolveTypeRef(
5093 var type = _kernel.type as kernel.FunctionType; 5059 this, _unlinkedTypedef.returnType,
5094 _returnType = 5060 declaredType: true);
5095 enclosingUnit._kernelContext.getType(this, type.returnType);
5096 }
5097 if (_unlinkedTypedef != null) {
5098 _returnType = enclosingUnit.resynthesizerContext.resolveTypeRef(
5099 this, _unlinkedTypedef.returnType,
5100 declaredType: true);
5101 }
5102 } 5061 }
5103 return _returnType; 5062 return _returnType;
5104 } 5063 }
5105 5064
5106 void set returnType(DartType returnType) { 5065 void set returnType(DartType returnType) {
5107 _assertNotResynthesized(_unlinkedTypedef); 5066 _assertNotResynthesized(_unlinkedTypedef);
5108 _returnType = _checkElementOfType(returnType); 5067 _returnType = _checkElementOfType(returnType);
5109 } 5068 }
5110 5069
5111 @override 5070 @override
5112 FunctionType get type { 5071 FunctionType get type {
5113 if (_type == null) { 5072 if (_unlinkedTypedef != null && _type == null) {
5114 if (_kernel != null || _unlinkedTypedef != null) { 5073 _type = new FunctionTypeImpl.forTypedef(this);
5115 _type = new FunctionTypeImpl.forTypedef(this);
5116 }
5117 } 5074 }
5118 return _type; 5075 return _type;
5119 } 5076 }
5120 5077
5121 void set type(FunctionType type) { 5078 void set type(FunctionType type) {
5122 _assertNotResynthesized(_unlinkedTypedef); 5079 _assertNotResynthesized(_unlinkedTypedef);
5123 _type = type; 5080 _type = type;
5124 } 5081 }
5125 5082
5126 /** 5083 /**
(...skipping 2479 matching lines...) Expand 10 before | Expand all | Expand 10 after
7606 @override 7563 @override
7607 int get codeOffset { 7564 int get codeOffset {
7608 if (_unlinkedVariable != null) { 7565 if (_unlinkedVariable != null) {
7609 return _unlinkedVariable.codeRange?.offset; 7566 return _unlinkedVariable.codeRange?.offset;
7610 } 7567 }
7611 return super.codeOffset; 7568 return super.codeOffset;
7612 } 7569 }
7613 7570
7614 @override 7571 @override
7615 String get documentationComment { 7572 String get documentationComment {
7616 if (_kernel != null) {
7617 return _kernel.documentationComment;
7618 }
7619 if (_unlinkedVariable != null) { 7573 if (_unlinkedVariable != null) {
7620 return _unlinkedVariable?.documentationComment?.text; 7574 return _unlinkedVariable?.documentationComment?.text;
7621 } 7575 }
7622 return super.documentationComment; 7576 return super.documentationComment;
7623 } 7577 }
7624 7578
7625 @override 7579 @override
7626 bool get hasImplicitType { 7580 bool get hasImplicitType {
7627 if (_unlinkedVariable != null) { 7581 if (_unlinkedVariable != null) {
7628 return _unlinkedVariable.type == null; 7582 return _unlinkedVariable.type == null;
(...skipping 2118 matching lines...) Expand 10 before | Expand all | Expand 10 after
9747 9701
9748 @override 9702 @override
9749 DartObject computeConstantValue() => null; 9703 DartObject computeConstantValue() => null;
9750 9704
9751 @override 9705 @override
9752 void visitChildren(ElementVisitor visitor) { 9706 void visitChildren(ElementVisitor visitor) {
9753 super.visitChildren(visitor); 9707 super.visitChildren(visitor);
9754 _initializer?.accept(visitor); 9708 _initializer?.accept(visitor);
9755 } 9709 }
9756 } 9710 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/src/summary/resynthesize_common.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698