Deprecate ExecutableElement.returnType, use returnType2 instead.
Change-Id: Ibd29c3fbec0439236c2cf45c57f820c45427df9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/311932
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart b/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart
index d542652..7e69b31 100644
--- a/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_inlay_hint.dart
@@ -222,7 +222,7 @@
// For getters/setters, the type must come before the property keyword,
// not the name.
final token = node.propertyKeyword ?? node.name;
- _computer._addTypePrefix(token, declaration.returnType);
+ _computer._addTypePrefix(token, declaration.returnType2);
}
}
@@ -278,7 +278,7 @@
final declaration = node.declaredElement;
if (declaration != null) {
- _computer._addTypePrefix(node.name, declaration.returnType);
+ _computer._addTypePrefix(node.name, declaration.returnType2);
}
}
diff --git a/pkg/analysis_server/lib/src/protocol_server.dart b/pkg/analysis_server/lib/src/protocol_server.dart
index 6aa780b..ead3ab4 100644
--- a/pkg/analysis_server/lib/src/protocol_server.dart
+++ b/pkg/analysis_server/lib/src/protocol_server.dart
@@ -61,7 +61,7 @@
if (element.kind == engine.ElementKind.SETTER) {
return null;
} else {
- return element.returnType
+ return element.returnType2
.getDisplayString(withNullability: withNullability);
}
} else if (element is engine.VariableElement) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart
index db61063..710d443 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart
@@ -95,7 +95,7 @@
if (element.enclosingElement2 is! CompilationUnitElement) {
return;
}
- var returnType = element.returnType;
+ var returnType = element.returnType2;
if (returnType is VoidType) {
if (opType.includeVoidReturnSuggestions) {
builder.suggestTopLevelFunction(element, kind: kind, prefix: prefix);
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
index bf0e302..57f77c5 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart
@@ -129,7 +129,7 @@
for (var method in type.methods) {
if (!method.isStatic) {
if (_visibilityTracker._isVisible(method.declaration)) {
- if (method.returnType is! VoidType) {
+ if (method.returnType2 is! VoidType) {
if (opType.includeReturnValueSuggestions) {
memberBuilder.addSuggestionForMethod(
method: method,
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
index 140b17a..5664337 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart
@@ -728,7 +728,7 @@
// the [request]) and compute the [inheritanceDistance] in this method.
var featureComputer = request.featureComputer;
var contextType = featureComputer.contextTypeFeature(
- request.contextType, method.returnType);
+ request.contextType, method.returnType2);
var elementKind =
_computeElementKind(method, distance: inheritanceDistance);
var hasDeprecated = featureComputer.hasDeprecatedFeature(method);
@@ -1124,8 +1124,8 @@
if (elementData == null) return;
var completion = elementData.completion;
if (_couldMatch(completion, prefix)) {
- var relevance =
- _computeTopLevelRelevance(function, elementType: function.returnType);
+ var relevance = _computeTopLevelRelevance(function,
+ elementType: function.returnType2);
_addBuilder(
_createCompletionSuggestionBuilder(
function,
@@ -1577,7 +1577,7 @@
/// invalid setter with no parameters at all.
DartType? _getPropertyAccessorType(PropertyAccessorElement accessor) {
if (accessor.isGetter) {
- return accessor.returnType;
+ return accessor.returnType2;
} else {
var parameters = accessor.parameters;
if (parameters.isEmpty) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
index 60255bd..3fbf650 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
@@ -135,7 +135,7 @@
if (expression is Identifier) {
var elem = expression.staticElement;
if (elem is FunctionTypedElement) {
- type = elem.returnType;
+ type = elem.returnType2;
} else if (elem is ParameterElement) {
type = elem.type;
} else if (elem is LocalVariableElement) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart b/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart
index 295c605..ef6a2cf 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart
@@ -230,7 +230,7 @@
if (element is PropertyAccessorElement && element.isSetter) {
return null;
}
- type = element.returnType;
+ type = element.returnType2;
} else if (element is TypeAliasElement) {
final aliasedType = element.aliasedType;
if (aliasedType is FunctionType) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart b/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart
index 7cdd3a7..f4b7d88 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/abstract_producer.dart
@@ -370,7 +370,7 @@
// return myFunction();
if (parent is ReturnStatement) {
var executable = getEnclosingExecutableElement(expression);
- return executable?.returnType;
+ return executable?.returnType2;
}
// int v = myFunction();
if (parent is VariableDeclaration) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart
index 850e4b4..eff644ef 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_async.dart
@@ -41,10 +41,10 @@
DartType? returnType;
if (node is FunctionDeclaration) {
body = node.functionExpression.body;
- returnType = node.declaredElement!.returnType;
+ returnType = node.declaredElement!.returnType2;
} else if (node is MethodDeclaration) {
body = node.body;
- returnType = node.declaredElement!.returnType;
+ returnType = node.declaredElement!.returnType2;
}
if (body == null || returnType == null) {
return;
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart
index b34b914..355ba51 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart
@@ -198,7 +198,7 @@
// Getter.
var element = node.declaredElement;
if (element is PropertyAccessorElement) {
- return element.returnType;
+ return element.returnType2;
}
} else if (node is VariableDeclaration) {
// Field.
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart
index 2bbd4ed..eb4664b 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart
@@ -148,7 +148,7 @@
} else if (enclosingExecutable is MethodDeclaration) {
toType = enclosingExecutable.returnType?.type;
} else if (enclosingExecutable is FunctionExpression) {
- toType = enclosingExecutable.declaredElement!.returnType;
+ toType = enclosingExecutable.declaredElement!.returnType2;
}
} else if (parent is BinaryExpression) {
if (typeSystem.isNonNullable(fromType)) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart
index 946956d..0c88841 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart
@@ -64,7 +64,7 @@
var lines = ['// TODO: implement ${functionElement.displayName}'];
- var returnValueType = functionElement.returnType;
+ var returnValueType = functionElement.returnType2;
if (returnValueType is! VoidType) {
lines.add('throw UnimplementedError();');
}
@@ -88,7 +88,7 @@
var returnCode = '';
if (returnValueType is! VoidType &&
!returnValueType.isBottom &&
- functionElement.returnType is! VoidType) {
+ functionElement.returnType2 is! VoidType) {
returnCode = 'return ';
}
returnCode += '$returnValueCode;';
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart
index 766c4ff..3ba5bc2 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/create_missing_overrides.dart
@@ -96,7 +96,7 @@
builder.write(eol);
// add field
builder.write(prefix);
- builder.writeType(element.returnType, required: true);
+ builder.writeType(element.returnType2, required: true);
builder.write(' ');
builder.write(element.name);
builder.write(';');
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/extract_local_variable.dart b/pkg/analysis_server/lib/src/services/correction/dart/extract_local_variable.dart
index d1ed77b..957aae6 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/extract_local_variable.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/extract_local_variable.dart
@@ -85,7 +85,7 @@
}) async {
if (targetProperty is PropertyAccessorElement &&
targetProperty.isGetter &&
- typeSystem.isPotentiallyNullable(targetProperty.returnType)) {
+ typeSystem.isPotentiallyNullable(targetProperty.returnType2)) {
AstNode? enclosingNode = target;
while (true) {
if (enclosingNode == null || enclosingNode is FunctionBody) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart b/pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart
index 74f94a6..db98956 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/replace_return_type.dart
@@ -95,7 +95,7 @@
if (overriddenList != null) {
var notSubtype = overriddenList.any((element) => !libraryElement
.typeSystem
- .isSubtypeOf(newType, element.returnType));
+ .isSubtypeOf(newType, element.returnType2));
if (notSubtype) {
return false;
}
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_method_to_getter.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_method_to_getter.dart
index 07fa498..959da14 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_method_to_getter.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/convert_method_to_getter.dart
@@ -89,7 +89,7 @@
'Only class methods or top-level functions can be converted to getters.');
}
// returns a value
- if (element.returnType is VoidType) {
+ if (element.returnType2 is VoidType) {
return RefactoringStatus.fatal(
'Cannot convert ${element.kind.displayName} returning void.');
}
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
index 6c77cfb..15319a7 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart
@@ -315,7 +315,7 @@
if (node is MethodInvocation) {
var invocation = node;
var element = invocation.methodName.staticElement;
- if (element is ExecutableElement && element.returnType is VoidType) {
+ if (element is ExecutableElement && element.returnType2 is VoidType) {
if (singleExpression == null) {
return RefactoringStatus.fatal(
'Cannot extract the void expression.',
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart
index 860e443..c5b7663 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/inline_method.dart
@@ -611,7 +611,7 @@
}
if (refElement is ExecutableElement) {
var executable = refElement as ExecutableElement;
- if (!executable.returnType.isDartAsyncFuture) {
+ if (!executable.returnType2.isDartAsyncFuture) {
status.addFatalError(
'Cannot inline async into a function that does not return a Future.',
newLocation_fromNode(_node));
diff --git a/pkg/analysis_server/lib/src/status/element_writer.dart b/pkg/analysis_server/lib/src/status/element_writer.dart
index c3aa082..0959bd1 100644
--- a/pkg/analysis_server/lib/src/status/element_writer.dart
+++ b/pkg/analysis_server/lib/src/status/element_writer.dart
@@ -79,7 +79,7 @@
properties['isOperator'] = element.isOperator;
properties['isStatic'] = element.isStatic;
properties['isSynchronous'] = element.isSynchronous;
- properties['returnType'] = element.returnType;
+ properties['returnType'] = element.returnType2;
properties['type'] = element.type;
}
if (element is LibraryExportElement) {
@@ -96,7 +96,7 @@
properties['isEntryPoint'] = element.isEntryPoint;
}
if (element is FunctionTypedElement) {
- properties['returnType'] = element.returnType;
+ properties['returnType'] = element.returnType2;
properties['type'] = element.type;
}
if (element is LibraryImportElement) {
diff --git a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
index b3bd8eb..3fe42ab 100644
--- a/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
+++ b/pkg/analysis_server/tool/code_completion/relevance_metrics.dart
@@ -1848,7 +1848,7 @@
/// have a return type.
DartType? _returnType(Element? element) {
if (element is ExecutableElement) {
- return element.returnType;
+ return element.returnType2;
}
return null;
}
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index ffbae68..cb6a0bf 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -3,8 +3,12 @@
* Added `InstanceElement`, a super-interface for `NamedInstanceElement`
and `ExtensionElement`.
* Deprecated `Element.enclosingElement`, use `enclosingElement2` instead.
- With this `ConstructorElement.enclosingElement` returns `NamedInstanceElement`
+ With this `ConstructorElement.enclosingElement2` returns `NamedInstanceElement`
instead of `InterfaceElement`, to support `InlineClassElement` constructors.
+* Added `NamedInstanceType`, a super-interface for `InterfaceType`.
+ In the future, also for `InlineClassType`.
+* Deprecated `ExecutableElement.returnType`, use `returnType2` instead.
+ With this, `ConstructorElement.returnType2` will return `NamedInstanceType`.
## 6.0.0
* Remove deprecated `declaredElement2` from AST.
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index e8f17f6..35cb7ab 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -472,8 +472,12 @@
/// library containing this constructor has not yet been resolved.
ConstructorElement? get redirectedConstructor;
+ @Deprecated('Use returnType2 instead')
@override
InterfaceType get returnType;
+
+ @override
+ NamedInstanceType get returnType2;
}
/// [ImportElementPrefix] that is used together with `deferred`.
@@ -1436,8 +1440,12 @@
List<ParameterElement> get parameters;
/// The return type defined by this element.
+ @Deprecated('Use returnType2 instead')
DartType get returnType;
+ /// The return type defined by this element.
+ DartType get returnType2;
+
/// The type defined by this element.
FunctionType get type;
}
diff --git a/pkg/analyzer/lib/dart/element/type.dart b/pkg/analyzer/lib/dart/element/type.dart
index 8524377..ede3083 100644
--- a/pkg/analyzer/lib/dart/element/type.dart
+++ b/pkg/analyzer/lib/dart/element/type.dart
@@ -270,7 +270,7 @@
///
/// Clients may not extend, implement or mix-in this class.
@experimental
-abstract class InlineClassType implements ParameterizedType {
+abstract class InlineClassType implements NamedInstanceType {
@override
InlineClassElement get element;
}
@@ -290,7 +290,7 @@
/// such a type.
///
/// Clients may not extend, implement or mix-in this class.
-abstract class InterfaceType implements ParameterizedType {
+abstract class InterfaceType implements NamedInstanceType {
/// Return a list containing all of the accessors (getters and setters)
/// declared in this type.
List<PropertyAccessorElement> get accessors;
@@ -426,6 +426,14 @@
/// differently, e.g. it does not cause follow-on implicit cast errors.
abstract class InvalidType implements DartType {}
+/// The type introduced by a [NamedInstanceElement].
+///
+/// Clients may not extend, implement or mix-in this class.
+abstract class NamedInstanceType implements ParameterizedType {
+ @override
+ NamedInstanceElement get element;
+}
+
/// The type `Never` represents the uninhabited bottom type.
abstract class NeverType implements DartType {}
diff --git a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
index 5e23de2..51c0b09 100644
--- a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
+++ b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
@@ -253,7 +253,7 @@
_evaluationEngine.evaluateConstructorCall(
_currentLibrary,
node,
- constructor.returnType.typeArguments,
+ constructor.returnType2.typeArguments,
node.argumentList.arguments,
constructor,
constantVisitor,
diff --git a/pkg/analyzer/lib/src/dart/constant/evaluation.dart b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
index e2a8f45..cef826b 100644
--- a/pkg/analyzer/lib/src/dart/constant/evaluation.dart
+++ b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
@@ -195,7 +195,7 @@
var result = evaluateConstructorCall(
library,
constNode,
- element.returnType.typeArguments,
+ element.returnType2.typeArguments,
constNode.arguments!.arguments,
element,
constantVisitor,
@@ -269,24 +269,27 @@
// any dependencies.
return;
}
- bool defaultSuperInvocationNeeded = true;
- var initializers = constant.constantInitializers;
- for (ConstructorInitializer initializer in initializers) {
- if (initializer is SuperConstructorInvocation ||
- initializer is RedirectingConstructorInvocation) {
- defaultSuperInvocationNeeded = false;
+ final returnType = constant.returnType2;
+ if (returnType is InterfaceType) {
+ bool defaultSuperInvocationNeeded = true;
+ var initializers = constant.constantInitializers;
+ for (ConstructorInitializer initializer in initializers) {
+ if (initializer is SuperConstructorInvocation ||
+ initializer is RedirectingConstructorInvocation) {
+ defaultSuperInvocationNeeded = false;
+ }
+ initializer.accept(referenceFinder);
}
- initializer.accept(referenceFinder);
- }
- if (defaultSuperInvocationNeeded) {
- // No explicit superconstructor invocation found, so we need to
- // manually insert a reference to the implicit superconstructor.
- var superclass = constant.returnType.superclass;
- if (superclass != null && !superclass.isDartCoreObject) {
- var unnamedConstructor =
- superclass.element.unnamedConstructor?.declaration;
- if (unnamedConstructor != null && unnamedConstructor.isConst) {
- callback(unnamedConstructor);
+ if (defaultSuperInvocationNeeded) {
+ // No explicit superconstructor invocation found, so we need to
+ // manually insert a reference to the implicit superconstructor.
+ var superclass = returnType.superclass;
+ if (superclass != null && !superclass.isDartCoreObject) {
+ var unnamedConstructor =
+ superclass.element.unnamedConstructor?.declaration;
+ if (unnamedConstructor != null && unnamedConstructor.isConst) {
+ callback(unnamedConstructor);
+ }
}
}
}
@@ -865,7 +868,7 @@
return evaluationEngine.evaluateConstructorCall(
_library,
node,
- constructor.returnType.typeArguments,
+ constructor.returnType2.typeArguments,
node.argumentList.arguments,
constructor,
this,
@@ -2405,7 +2408,7 @@
_argumentValues = argumentValues,
_invocation = invocation;
- InterfaceType get definingType => _constructor.returnType;
+ NamedInstanceType get definingType => _constructor.returnType2;
DartObjectImpl? get firstArgument => _argumentValues[0];
@@ -2420,7 +2423,9 @@
}) {
final definingClass = _constructor.enclosingElement2;
var argumentCount = arguments.length;
- if (_constructor.name == "fromEnvironment") {
+ final definingType = this.definingType;
+ if (definingType is InterfaceType &&
+ _constructor.name == "fromEnvironment") {
if (!_checkFromEnvironmentArguments(arguments, definingType)) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, _errorNode);
@@ -2543,7 +2548,7 @@
continue;
}
// Match the value and the type.
- var fieldType = FieldMember.from(field, _constructor.returnType).type;
+ var fieldType = FieldMember.from(field, _constructor.returnType2).type;
if (!typeSystem.runtimeTypeMatch(fieldValue, fieldType)) {
_errorReporter.reportErrorForNode(
CompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH,
@@ -2596,6 +2601,11 @@
}
_InitializersEvaluationResult _checkInitializers() {
+ final definingType = this.definingType;
+ if (definingType is! InterfaceType) {
+ return _InitializersEvaluationResult(null, evaluationIsComplete: true);
+ }
+
var constructorBase = _constructor.declaration as ConstructorElementImpl;
// If we encounter a superinitializer, store the name of the constructor,
// and the arguments.
@@ -2763,6 +2773,11 @@
required String? superName,
required List<Expression>? superArguments,
}) {
+ final definingType = this.definingType;
+ if (definingType is! InterfaceType) {
+ return;
+ }
+
var superclass = definingType.superclass;
if (superclass != null && !superclass.isDartCoreObject) {
var superConstructor =
@@ -2866,7 +2881,7 @@
// cycles (e.g. "compile-time constant expression depends on itself").
return DartObjectImpl.validWithUnknownValue(
library.typeSystem,
- constructor.returnType,
+ constructor.returnType2,
);
}
diff --git a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
index e17b595..10a0bf4 100644
--- a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
+++ b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
@@ -66,7 +66,7 @@
}
void writeConstructorElement(ConstructorElement element) {
- _writeType(element.returnType);
+ _writeType(element.returnType2);
_write(' ');
_write(element.displayName);
@@ -91,7 +91,7 @@
}
void writeExecutableElement(ExecutableElement element, String name) {
- _writeType(element.returnType);
+ _writeType(element.returnType2);
_write(' ');
_write(name);
@@ -144,7 +144,7 @@
}
void writeGenericFunctionTypeElement(GenericFunctionTypeElementImpl element) {
- _writeType(element.returnType);
+ _writeType(element.returnType2);
_write(' Function');
_writeTypeParameters(element.typeParameters);
_writeFormalParameters(element.parameters, forElement: true);
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index f7ce222..43362c3 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -1554,6 +1554,7 @@
_redirectedConstructor = redirectedConstructor;
}
+ @Deprecated('Use returnType2 instead')
@override
InterfaceType get returnType =>
ElementTypeProvider.current.getExecutableReturnType(this)
@@ -1565,8 +1566,13 @@
}
@override
- InterfaceType get returnTypeInternal {
- return (_returnType ??= enclosingElement2.thisType) as InterfaceType;
+ NamedInstanceType get returnType2 =>
+ ElementTypeProvider.current.getExecutableReturnType(this)
+ as NamedInstanceType;
+
+ @override
+ DartType get returnTypeInternal {
+ return _returnType ??= enclosingElement2.thisType;
}
ConstructorElement? get superConstructor {
@@ -1592,7 +1598,7 @@
return _type ??= FunctionTypeImpl(
typeFormals: typeParameters,
parameters: parameters,
- returnType: returnType,
+ returnType: returnType2,
nullabilitySuffix: _noneOrStarSuffix,
);
}
@@ -3296,6 +3302,7 @@
return _parameters;
}
+ @Deprecated('Use returnType2 instead')
@override
DartType get returnType =>
ElementTypeProvider.current.getExecutableReturnType(this);
@@ -3313,6 +3320,10 @@
}
@override
+ DartType get returnType2 =>
+ ElementTypeProvider.current.getExecutableReturnType(this);
+
+ @override
DartType get returnTypeInternal {
linkedData?.read(this);
return _returnType!;
@@ -3332,7 +3343,7 @@
return _type = FunctionTypeImpl(
typeFormals: typeParameters,
parameters: parameters,
- returnType: returnType,
+ returnType: returnType2,
nullabilitySuffix: _noneOrStarSuffix,
);
}
@@ -3784,6 +3795,7 @@
_parameters = parameters;
}
+ @Deprecated('Use returnType2 instead')
@override
DartType get returnType =>
ElementTypeProvider.current.getExecutableReturnType(this);
@@ -3796,6 +3808,10 @@
}
@override
+ DartType get returnType2 =>
+ ElementTypeProvider.current.getExecutableReturnType(this);
+
+ @override
DartType get returnTypeInternal {
return _returnType!;
}
@@ -3816,7 +3832,7 @@
return _type = FunctionTypeImpl(
typeFormals: typeParameters,
parameters: parameters,
- returnType: returnType,
+ returnType: returnType2,
nullabilitySuffix:
isNullable ? NullabilitySuffix.question : _noneOrStarSuffix,
);
@@ -6050,6 +6066,7 @@
return enclosingElement2;
}
+ @Deprecated('Use returnType2 instead')
@override
DartType get returnType =>
ElementTypeProvider.current.getExecutableReturnType(this);
@@ -6060,6 +6077,10 @@
}
@override
+ DartType get returnType2 =>
+ ElementTypeProvider.current.getExecutableReturnType(this);
+
+ @override
DartType get returnTypeInternal => variable.type;
@override
@@ -6078,7 +6099,7 @@
return _type ??= FunctionTypeImpl(
typeFormals: const <TypeParameterElement>[],
parameters: const <ParameterElement>[],
- returnType: returnType,
+ returnType: returnType2,
nullabilitySuffix: _noneOrStarSuffix,
);
}
@@ -6123,6 +6144,7 @@
growable: false);
}
+ @Deprecated('Use returnType2 instead')
@override
DartType get returnType =>
ElementTypeProvider.current.getExecutableReturnType(this);
@@ -6133,6 +6155,10 @@
}
@override
+ DartType get returnType2 =>
+ ElementTypeProvider.current.getExecutableReturnType(this);
+
+ @override
DartType get returnTypeInternal => VoidTypeImpl.instance;
@override
@@ -6151,7 +6177,7 @@
return _type ??= FunctionTypeImpl(
typeFormals: const <TypeParameterElement>[],
parameters: parameters,
- returnType: returnType,
+ returnType: returnType2,
nullabilitySuffix: _noneOrStarSuffix,
);
}
@@ -6244,7 +6270,7 @@
if (isSynthetic) {
if (getter != null) {
- return _type = getter!.returnType;
+ return _type = getter!.returnType2;
} else if (setter != null) {
List<ParameterElement> parameters = setter!.parameters;
return _type = parameters.isNotEmpty
diff --git a/pkg/analyzer/lib/src/dart/element/extensions.dart b/pkg/analyzer/lib/src/dart/element/extensions.dart
index 02f491b..1df4bb8 100644
--- a/pkg/analyzer/lib/src/dart/element/extensions.dart
+++ b/pkg/analyzer/lib/src/dart/element/extensions.dart
@@ -20,7 +20,7 @@
NamedInstanceElement? instanceElement;
if (element is PropertyAccessorElement) {
if (element.isGetter) {
- var type = element.returnType;
+ var type = element.returnType2;
if (type is InterfaceType) {
instanceElement = type.element;
}
diff --git a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
index c6b9bd4..4081106 100644
--- a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
+++ b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
@@ -778,7 +778,7 @@
result.isSynthetic = true;
result.parameters = transformedParameters;
result.prototype = executable;
- result.returnType = executable.returnType;
+ result.returnType = executable.returnType2;
result.typeParameters = executable.typeParameters;
return result;
}
@@ -790,7 +790,7 @@
result.isSynthetic = true;
result.parameters = transformedParameters;
result.prototype = executable;
- result.returnType = executable.returnType;
+ result.returnType = executable.returnType2;
var field = executable.variable;
var resultField = FieldElementImpl(field.name, -1);
@@ -871,7 +871,7 @@
field.enclosingElement = targetClass;
if (firstAccessor.isGetter) {
field.getter = result;
- field.type = result.returnType;
+ field.type = result.returnType2;
} else {
field.setter = result;
field.type = result.parameters[0].type;
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index 06d221c..030da7c 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -95,10 +95,14 @@
return ConstructorMember(_typeProvider, declaration, substitution, false);
}
+ @Deprecated('Use returnType2 instead')
@override
InterfaceType get returnType => type.returnType as InterfaceType;
@override
+ NamedInstanceType get returnType2 => type.returnType as NamedInstanceType;
+
+ @override
Source get source => _declaration.source!;
@override
@@ -216,6 +220,7 @@
}).toList();
}
+ @Deprecated('Use returnType2 instead')
@override
DartType get returnType {
var result = declaration.returnType;
@@ -225,6 +230,14 @@
}
@override
+ DartType get returnType2 {
+ var result = declaration.returnType2;
+ result = _substitution.substituteType(result);
+ result = _toLegacyType(result);
+ return result;
+ }
+
+ @override
FunctionType get type {
if (_type != null) return _type!;
@@ -416,7 +429,7 @@
/// from the [definingType], create a field member representing the given
/// field. Return the member that was created, or the base field if no member
/// was created.
- static FieldElement from(FieldElement field, InterfaceType definingType) {
+ static FieldElement from(FieldElement field, NamedInstanceType definingType) {
if (definingType.typeArguments.isEmpty) {
return field;
}
diff --git a/pkg/analyzer/lib/src/dart/element/type_algebra.dart b/pkg/analyzer/lib/src/dart/element/type_algebra.dart
index 931a969..7042658 100644
--- a/pkg/analyzer/lib/src/dart/element/type_algebra.dart
+++ b/pkg/analyzer/lib/src/dart/element/type_algebra.dart
@@ -181,7 +181,7 @@
/// Substitutes the type parameters on the class of [type] with the
/// type arguments provided in [type].
- static MapSubstitution fromInterfaceType(InterfaceType type) {
+ static MapSubstitution fromInterfaceType(NamedInstanceType type) {
if (type.typeArguments.isEmpty) {
return _NullSubstitution.instance;
}
diff --git a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
index ae21477..39ac762 100644
--- a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
@@ -279,7 +279,7 @@
leftType,
operator,
rightType,
- operatorElement.returnType,
+ operatorElement.returnType2,
operatorElement,
);
} else {
diff --git a/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart b/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart
index 9e26ba6..3419f76 100644
--- a/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart
@@ -684,7 +684,7 @@
if (element is ExecutableElement) {
var declaration = element.declaration;
return declaration.hasAlwaysThrows ||
- identical(declaration.returnType, NeverTypeImpl.instance);
+ identical(declaration.returnType2, NeverTypeImpl.instance);
}
return false;
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
index 3d79245..edb4a61 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
@@ -375,7 +375,7 @@
if (member is PropertyAccessorElement) {
function.accept(_resolver);
- _resolve(node: node, rawType: member.returnType);
+ _resolve(node: node, rawType: member.returnType2);
return;
}
@@ -694,7 +694,7 @@
if (method is PropertyAccessorElement) {
function.staticElement = method;
- function.staticType = method.returnType;
+ function.staticType = method.returnType2;
_resolve(node: node, rawType: method.variable.type);
return;
}
@@ -758,7 +758,7 @@
_resolveAsImplicitCallReference(node, callMethod);
return;
}
- _resolve(node: node, rawType: element.returnType);
+ _resolve(node: node, rawType: element.returnType2);
return;
} else if (element is ExecutableElement) {
function.staticElement = element;
@@ -913,7 +913,7 @@
} else if (this is FunctionElement) {
return (this as FunctionElement).type;
} else if (this is PropertyAccessorElement) {
- return (this as PropertyAccessorElement).returnType;
+ return (this as PropertyAccessorElement).returnType2;
} else if (this is MethodElement) {
return (this as MethodElement).type;
} else if (this is VariableElement) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart b/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
index 71a116f..6770959 100644
--- a/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
@@ -49,7 +49,7 @@
: FunctionTypeImpl(
typeFormals: typeParameters,
parameters: element.parameters,
- returnType: element.returnType,
+ returnType: element.returnType2,
nullabilitySuffix: NullabilitySuffix.none,
);
}
diff --git a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
index c020f37..9d27288 100644
--- a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
@@ -366,7 +366,7 @@
getter = _resolver.toLegacyElement(getter);
nameNode.staticElement = getter;
_reportStaticAccessToInstanceMember(getter, nameNode);
- _rewriteAsFunctionExpressionInvocation(node, getter.returnType,
+ _rewriteAsFunctionExpressionInvocation(node, getter.returnType2,
contextType: contextType);
return;
}
@@ -433,7 +433,7 @@
nameNode.staticElement = member;
if (member is PropertyAccessorElement) {
- return _rewriteAsFunctionExpressionInvocation(node, member.returnType,
+ return _rewriteAsFunctionExpressionInvocation(node, member.returnType2,
contextType: contextType);
}
@@ -459,7 +459,7 @@
target = _resolver.toLegacyElement(target);
nameNode.staticElement = target;
rawType = target.type;
- node.staticType = target.returnType;
+ node.staticType = target.returnType2;
}
}
@@ -569,7 +569,7 @@
element = multiply.conflictingElements[0];
}
if (element is PropertyAccessorElement) {
- return _rewriteAsFunctionExpressionInvocation(node, element.returnType,
+ return _rewriteAsFunctionExpressionInvocation(node, element.returnType2,
contextType: contextType);
}
if (element is ExecutableElement) {
@@ -661,7 +661,7 @@
}
if (element is PropertyAccessorElement) {
- return _rewriteAsFunctionExpressionInvocation(node, element.returnType,
+ return _rewriteAsFunctionExpressionInvocation(node, element.returnType2,
contextType: contextType);
}
@@ -704,7 +704,7 @@
if (target != null) {
nameNode.staticElement = target;
if (target is PropertyAccessorElement) {
- return _rewriteAsFunctionExpressionInvocation(node, target.returnType,
+ return _rewriteAsFunctionExpressionInvocation(node, target.returnType2,
contextType: contextType, isSuperAccess: true);
}
_setResolution(node, target.type, whyNotPromotedList,
@@ -797,7 +797,7 @@
}
if (target is PropertyAccessorElement) {
- return _rewriteAsFunctionExpressionInvocation(node, target.returnType,
+ return _rewriteAsFunctionExpressionInvocation(node, target.returnType2,
contextType: contextType);
}
return _setResolution(node, target.type, whyNotPromotedList,
@@ -845,7 +845,7 @@
nameNode.staticElement = element;
if (element is PropertyAccessorElement) {
return _rewriteAsFunctionExpressionInvocation(
- node, element.returnType,
+ node, element.returnType2,
contextType: contextType);
}
_setResolution(node, element.type, whyNotPromotedList,
diff --git a/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart
index d25b40f..5440840 100644
--- a/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart
@@ -259,7 +259,7 @@
readElementRequested = _resolver.toLegacyElement(readLookup?.requested);
if (readElementRequested is PropertyAccessorElement &&
!readElementRequested.isStatic) {
- var unpromotedType = readElementRequested.returnType;
+ var unpromotedType = readElementRequested.returnType2;
getType = _resolver.flowAnalysis.flow?.propertyGet(
node,
ThisPropertyTarget.singleton,
@@ -480,7 +480,7 @@
DartType? getType;
if (hasRead) {
var unpromotedType =
- result.getter?.returnType ?? _typeSystem.typeProvider.dynamicType;
+ result.getter?.returnType2 ?? _typeSystem.typeProvider.dynamicType;
getType = _resolver.flowAnalysis.flow?.propertyGet(
node,
isCascaded
@@ -551,7 +551,7 @@
);
} else {
readElement = _resolver.toLegacyElement(readElement);
- getType = readElement.returnType;
+ getType = readElement.returnType2;
if (_checkForStaticAccessToInstanceMember(propertyName, readElement)) {
readElementRecovery = readElement;
readElement = null;
@@ -624,7 +624,7 @@
[memberName, element.name!],
);
} else {
- getType = readElement.returnType;
+ getType = readElement.returnType2;
}
_checkForStaticMember(target, propertyName, readElement);
}
@@ -681,7 +681,7 @@
if (readElement != null) {
readElement = _resolver.toLegacyElement(readElement);
- getType = readElement.returnType;
+ getType = readElement.returnType2;
if (_checkForStaticAccessToInstanceMember(propertyName, readElement)) {
readElementRecovery = readElement;
readElement = null;
@@ -755,7 +755,7 @@
var writeElement = _resolver.toLegacyElement(lookupResult.setter);
DartType? getType;
if (hasRead && readElement is PropertyAccessorElement) {
- getType = readElement.returnType;
+ getType = readElement.returnType2;
}
if (hasRead && readElement == null || hasWrite && writeElement == null) {
@@ -827,7 +827,7 @@
}
}
var unpromotedType =
- readElement?.returnType ?? _typeSystem.typeProvider.dynamicType;
+ readElement?.returnType2 ?? _typeSystem.typeProvider.dynamicType;
getType = _resolver.flowAnalysis.flow?.propertyGet(
node,
SuperPropertyTarget.singleton,
diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
index 6d3d53e..01fe63a 100644
--- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
@@ -844,7 +844,7 @@
var type = FunctionTypeImpl(
typeFormals: element.typeParameters,
parameters: element.parameters,
- returnType: element.returnType,
+ returnType: element.returnType2,
nullabilitySuffix: _getNullability(node.question != null),
);
element.type = type;
diff --git a/pkg/analyzer/lib/src/error/best_practices_verifier.dart b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
index 837c480..1157e2c 100644
--- a/pkg/analyzer/lib/src/error/best_practices_verifier.dart
+++ b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
@@ -1020,7 +1020,7 @@
} else if (element is FunctionElement) {
var signatureTypes = [
...element.parameters.map((p) => p.type),
- element.returnType,
+ element.returnType2,
...element.typeParameters.map((tp) => tp.bound),
];
for (var type in signatureTypes) {
diff --git a/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart b/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart
index 0013eb0..7cd2a03 100644
--- a/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart
+++ b/pkg/analyzer/lib/src/error/getter_setter_types_verifier.dart
@@ -49,7 +49,7 @@
if (getter.kind == ElementKind.GETTER) {
var setter = interface.map[Name(libraryUri, '${name.name}=')];
if (setter != null && setter.parameters.length == 1) {
- var getterType = getter.returnType;
+ var getterType = getter.returnType2;
var setterType = setter.parameters[0].type;
if (!_match(getterType, setterType)) {
Element errorElement;
@@ -119,7 +119,7 @@
/// Return the return type of the [getter].
static DartType _getGetterType(PropertyAccessorElement getter) {
- return getter.returnType;
+ return getter.returnType2;
}
/// Return the type of the first parameter of the [setter].
diff --git a/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart b/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart
index 5ebd0e4..ee797c9 100644
--- a/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart
+++ b/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart
@@ -30,7 +30,7 @@
final constructor = expression.constructorName.staticElement;
if (constructor == null) return;
- final type = constructor.returnType;
+ final type = constructor.returnType2;
final isFutureValue = type.isDartAsyncFuture && constructor.name == 'value';
if (isFutureValue) {
diff --git a/pkg/analyzer/lib/src/error/type_arguments_verifier.dart b/pkg/analyzer/lib/src/error/type_arguments_verifier.dart
index 9abf521..cd6ff841 100644
--- a/pkg/analyzer/lib/src/error/type_arguments_verifier.dart
+++ b/pkg/analyzer/lib/src/error/type_arguments_verifier.dart
@@ -117,7 +117,7 @@
}
// Check that type arguments are regular-bounded.
- var typeArguments = constructorElement.returnType.typeArguments;
+ var typeArguments = constructorElement.returnType2.typeArguments;
var substitution = Substitution.fromPairs(typeParameters, typeArguments);
for (var i = 0; i < typeArguments.length; i++) {
var typeParameter = typeParameters[i];
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 66b3b97..02e4304 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -111,7 +111,7 @@
bool get isSynchronous => !isAsynchronous;
DartType get returnType {
- return catchErrorOnErrorReturnType ?? element!.returnType;
+ return catchErrorOnErrorReturnType ?? element!.returnType2;
}
static bool _inFactoryConstructor(Element? element) {
@@ -3077,7 +3077,7 @@
if (element is PropertyAccessorElement && element.isSetter) {
return;
}
- if (element.hasImplicitReturnType && element.returnType is DynamicType) {
+ if (element.hasImplicitReturnType && element.returnType2 is DynamicType) {
errorReporter.reportErrorForToken(LanguageCode.IMPLICIT_DYNAMIC_RETURN,
functionName, [element.displayName]);
}
diff --git a/pkg/analyzer/lib/src/generated/exhaustiveness.dart b/pkg/analyzer/lib/src/generated/exhaustiveness.dart
index 14de811..f46f80e 100644
--- a/pkg/analyzer/lib/src/generated/exhaustiveness.dart
+++ b/pkg/analyzer/lib/src/generated/exhaustiveness.dart
@@ -527,7 +527,7 @@
DartType? extensionPropertyType;
if (element is PropertyAccessorElement &&
element.enclosingElement2 is ExtensionElement) {
- extensionPropertyType = element.returnType;
+ extensionPropertyType = element.returnType2;
} else if (element is ExecutableElement &&
element.enclosingElement2 is ExtensionElement) {
extensionPropertyType = element.type;
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 6b71dc3..92489e1 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -1647,7 +1647,7 @@
if (getter != null) {
fieldNode.element = getter;
if (getter is PropertyAccessorElement) {
- return getter.returnType;
+ return getter.returnType2;
} else {
return getter.type;
}
@@ -1711,7 +1711,7 @@
return RelationalOperatorResolution(
kind: kind,
parameterType: parameterType,
- returnType: element.returnType,
+ returnType: element.returnType2,
);
}
@@ -1724,13 +1724,13 @@
atDynamicTarget ? DynamicTypeImpl.instance : InvalidTypeImpl.instance;
if (node is IndexExpression) {
if (element is MethodElement) {
- readType = element.returnType;
+ readType = element.returnType2;
}
} else if (node is PrefixedIdentifier ||
node is PropertyAccess ||
node is SimpleIdentifier) {
if (element is PropertyAccessorElement && element.isGetter) {
- readType = element.returnType;
+ readType = element.returnType2;
} else if (element is VariableElement) {
readType = localVariableTypeProvider.getType(node as SimpleIdentifier,
isRead: true);
@@ -2849,7 +2849,7 @@
if (identical(targetType, NeverTypeImpl.instance)) {
type = NeverTypeImpl.instance;
} else if (element is MethodElement) {
- type = element.returnType;
+ type = element.returnType2;
} else if (targetType is DynamicType) {
type = DynamicTypeImpl.instance;
} else {
@@ -2962,7 +2962,7 @@
flowAnalysis.executableDeclaration_enter(node, node.parameters,
isClosure: false);
- DartType returnType = node.declaredElement!.returnType;
+ DartType returnType = node.declaredElement!.returnType2;
var outerFunction = _enclosingFunction;
try {
@@ -4017,7 +4017,7 @@
var staticElement = nameNode.staticElement;
if (staticElement != null) {
name =
- '${staticElement.returnType.getDisplayString(withNullability: true)}.new';
+ '${staticElement.returnType2.getDisplayString(withNullability: true)}.new';
}
}
} else if (nameNode is SuperConstructorInvocation) {
@@ -4026,7 +4026,7 @@
var staticElement = nameNode.staticElement;
if (staticElement != null) {
name =
- '${staticElement.returnType.getDisplayString(withNullability: true)}.new';
+ '${staticElement.returnType2.getDisplayString(withNullability: true)}.new';
}
}
} else if (nameNode is MethodInvocation) {
diff --git a/pkg/analyzer/lib/src/summary2/bundle_writer.dart b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
index b1c525a..c945459 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
@@ -327,7 +327,7 @@
_resolutionSink._writeAnnotationList(element.metadata);
_writeTypeParameters(element.typeParameters, () {
- _resolutionSink.writeType(element.returnType);
+ _resolutionSink.writeType(element.returnType2);
_writeList(element.parameters, _writeParameterElement);
});
}
@@ -395,7 +395,7 @@
_writeTypeParameters(element.typeParameters, () {
_writeList(element.parameters, _writeParameterElement);
_sink._writeTopLevelInferenceError(element.typeInferenceError);
- _resolutionSink.writeType(element.returnType);
+ _resolutionSink.writeType(element.returnType2);
});
}
@@ -476,7 +476,7 @@
PropertyAccessorElementFlags.write(_sink, element);
_resolutionSink._writeAnnotationList(element.metadata);
- _resolutionSink.writeType(element.returnType);
+ _resolutionSink.writeType(element.returnType2);
_writeList(element.parameters, _writeParameterElement);
}
@@ -719,7 +719,7 @@
writeByte(AliasedElementTag.genericFunctionElement);
_writeTypeParameters(element.typeParameters, () {
_writeFormalParameters(element.parameters, withAnnotations: true);
- writeType(element.returnType);
+ writeType(element.returnType2);
}, withAnnotations: true);
} else {
throw UnimplementedError('${element.runtimeType}');
diff --git a/pkg/analyzer/lib/src/task/strong_mode.dart b/pkg/analyzer/lib/src/task/strong_mode.dart
index 33cf5d1..963299a 100644
--- a/pkg/analyzer/lib/src/task/strong_mode.dart
+++ b/pkg/analyzer/lib/src/task/strong_mode.dart
@@ -139,7 +139,7 @@
name: getterName,
);
if (combinedGetter != null) {
- var returnType = combinedGetter.returnType;
+ var returnType = combinedGetter.returnType2;
return typeSystem.nonNullifyLegacy(returnType);
}
return DynamicTypeImpl.instance;
diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart
index 2bed2e4..76ce667 100644
--- a/pkg/analyzer/test/generated/strong_mode_test.dart
+++ b/pkg/analyzer/test/generated/strong_mode_test.dart
@@ -2715,7 +2715,7 @@
MethodDeclaration mapC = AstFinder.getMethodInClass(unit, "C", "map");
assertMapOfIntToListOfInt(mapB.declaredElement!.type as InterfaceType);
assertMapOfIntToListOfInt(
- mapC.declaredElement!.returnType as InterfaceType);
+ mapC.declaredElement!.returnType2 as InterfaceType);
var mapLiteralB = mapB.initializer as SetOrMapLiteral;
var mapLiteralC =
diff --git a/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart b/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart
index e4a4ed6..2ab1a0f 100644
--- a/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart
+++ b/pkg/analyzer/test/id_tests/inferred_variable_types_test.dart
@@ -62,13 +62,13 @@
} else if (node is FunctionDeclarationStatement) {
var element = node.functionDeclaration.declaredElement!;
if (element.hasImplicitReturnType) {
- return element.returnType;
+ return element.returnType2;
}
} else if (node is FunctionExpression &&
node.parent is! FunctionDeclaration) {
var element = node.declaredElement!;
if (element.hasImplicitReturnType) {
- return element.returnType;
+ return element.returnType2;
}
}
return null;
diff --git a/pkg/analyzer/test/id_tests/inheritance_test.dart b/pkg/analyzer/test/id_tests/inheritance_test.dart
index 26a7629..e9a72f0 100644
--- a/pkg/analyzer/test/id_tests/inheritance_test.dart
+++ b/pkg/analyzer/test/id_tests/inheritance_test.dart
@@ -121,7 +121,7 @@
type = executable.type;
} else if (executable is PropertyAccessorElement) {
if (executable.isGetter) {
- type = executable.returnType;
+ type = executable.returnType2;
} else {
type = executable.parameters.first.type;
}
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index d32ea60..893110d 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -3723,7 +3723,7 @@
void _assertClassMethodReturnType(CompilationUnit unit, String className,
String fieldName, String expected) {
var node = _getClassMethod(unit, className, fieldName);
- var type = node.declaredElement!.returnType;
+ var type = node.declaredElement!.returnType2;
assertType(type, expected);
}
diff --git a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
index 56073ec..9ab8424 100644
--- a/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
+++ b/pkg/analyzer/test/src/dart/element/inheritance_manager3_test.dart
@@ -52,7 +52,7 @@
final B = findElement.classOrMixin('B');
final foo = manager.getMember2(B, Name(null, 'foo'))!;
final T = foo.typeParameters.single;
- final returnType = foo.returnType;
+ final returnType = foo.returnType2;
expect(returnType.element, same(T));
}
@@ -67,7 +67,7 @@
final B = findElement.classOrMixin('B');
final foo = manager.getMember2(B, Name(null, 'foo'))!;
final T = foo.typeParameters.single;
- final returnType = foo.returnType;
+ final returnType = foo.returnType2;
// Check that the return type uses the same `T` as `<T>`.
expect(returnType.element, same(T));
}
@@ -83,7 +83,7 @@
final B = findElement.classOrMixin('B');
final foo = manager.getMember2(B, Name(null, 'foo'))!;
final T = foo.typeParameters.single;
- final returnType = foo.returnType;
+ final returnType = foo.returnType2;
expect(returnType.element, same(T));
}
@@ -1473,7 +1473,7 @@
expect(variable.enclosingElement2, same(element.enclosingElement2));
expect(variable.name, element.displayName);
if (element.isGetter) {
- expect(variable.type, element.returnType);
+ expect(variable.type, element.returnType2);
} else {
expect(variable.type, element.parameters[0].type);
}
diff --git a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart
index dcc7d64..f137134 100644
--- a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_class_test.dart
@@ -761,7 +761,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_different_dynamic() async {
@@ -777,7 +777,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_different_generic() async {
@@ -793,7 +793,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertTypeDynamic(foo.returnType);
+ assertTypeDynamic(foo.returnType2);
}
test_method_return_multiple_different_incompatible() async {
@@ -809,7 +809,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertTypeDynamic(foo.returnType);
+ assertTypeDynamic(foo.returnType2);
}
test_method_return_multiple_different_merge() async {
@@ -827,7 +827,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertType(foo.returnType, 'Object?');
+ assertType(foo.returnType2, 'Object?');
}
test_method_return_multiple_different_void() async {
@@ -843,7 +843,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_same_generic() async {
@@ -859,7 +859,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertType(foo.returnType, 'T');
+ assertType(foo.returnType2, 'T');
}
test_method_return_multiple_same_nonVoid() async {
@@ -875,7 +875,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_same_void() async {
@@ -891,7 +891,7 @@
}
''');
var foo = findElement.method('foo', of: 'C');
- assertType(foo.returnType, 'void');
+ assertType(foo.returnType2, 'void');
}
test_method_return_nonNullify() async {
@@ -909,7 +909,7 @@
}
''');
var foo = findElement.method('foo', of: 'B');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_single() async {
@@ -922,7 +922,7 @@
}
''');
var foo = findElement.method('foo', of: 'B');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_single_generic() async {
@@ -935,7 +935,7 @@
}
''');
var foo = findElement.method('foo', of: 'B');
- assertType(foo.returnType, 'T');
+ assertType(foo.returnType2, 'T');
}
test_setter_covariant_fromSetter() async {
@@ -1132,12 +1132,12 @@
void _assertGetterType(PropertyAccessorElement? accessor, String expected) {
accessor!;
- assertType(accessor.returnType, expected);
+ assertType(accessor.returnType2, expected);
}
void _assertGetterTypeDynamic(PropertyAccessorElement? accessor) {
accessor!;
- assertTypeDynamic(accessor.returnType);
+ assertTypeDynamic(accessor.returnType2);
}
void _assertParameter(
diff --git a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart
index a9a312f..1c4e322 100644
--- a/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/instance_member_inference_mixin_test.dart
@@ -194,7 +194,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_different_dynamic() async {
@@ -210,7 +210,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_different_generic() async {
@@ -226,7 +226,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertTypeDynamic(foo.returnType);
+ assertTypeDynamic(foo.returnType2);
}
test_method_return_multiple_different_incompatible() async {
@@ -242,7 +242,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertTypeDynamic(foo.returnType);
+ assertTypeDynamic(foo.returnType2);
}
test_method_return_multiple_different_merge() async {
@@ -260,7 +260,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertType(foo.returnType, 'Object?');
+ assertType(foo.returnType2, 'Object?');
}
test_method_return_multiple_different_void() async {
@@ -276,7 +276,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_same_generic() async {
@@ -292,7 +292,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertType(foo.returnType, 'T');
+ assertType(foo.returnType2, 'T');
}
test_method_return_multiple_same_nonVoid() async {
@@ -308,7 +308,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_multiple_same_void() async {
@@ -324,7 +324,7 @@
}
''');
var foo = findElement.method('foo', of: 'M');
- assertType(foo.returnType, 'void');
+ assertType(foo.returnType2, 'void');
}
test_method_return_single() async {
@@ -337,7 +337,7 @@
}
''');
var foo = findElement.method('foo', of: 'B');
- assertType(foo.returnType, 'int');
+ assertType(foo.returnType2, 'int');
}
test_method_return_single_generic() async {
@@ -350,6 +350,6 @@
}
''');
var foo = findElement.method('foo', of: 'B');
- assertType(foo.returnType, 'T');
+ assertType(foo.returnType2, 'T');
}
}
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart
index a3b228b..302965b 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart
@@ -1223,7 +1223,7 @@
void _assertReturnType(String search, String expected) {
var element = findNode.functionExpression(search).declaredElement!;
- assertType(element.returnType, expected);
+ assertType(element.returnType2, expected);
}
}
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 1577f4a..a6b5dd3 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -608,7 +608,7 @@
_writeCodeRange(e);
_writeTypeParameterElements(e.typeParameters);
_writeParameterElements(e.parameters);
- _writeType('returnType', e.returnType);
+ _writeType('returnType', e.returnType2);
});
_assertNonSyntheticElementSelf(e);
@@ -712,7 +712,7 @@
_writeTypeParameterElements(e.typeParameters);
_writeParameterElements(e.parameters);
- _writeType('returnType', e.returnType);
+ _writeType('returnType', e.returnType2);
_writeNonSyntheticElement(e);
});
@@ -887,7 +887,7 @@
expect(e.typeParameters, isEmpty);
_writeParameterElements(e.parameters);
- _writeType('returnType', e.returnType);
+ _writeType('returnType', e.returnType2);
_writeNonSyntheticElement(e);
writeLinking();
});
@@ -1028,7 +1028,7 @@
_withIndent(() {
_writeTypeParameterElements(aliasedElement.typeParameters);
_writeParameterElements(aliasedElement.parameters);
- _writeType('returnType', aliasedElement.returnType);
+ _writeType('returnType', aliasedElement.returnType2);
});
}
});
diff --git a/pkg/analyzer/test/src/summary/elements_test.dart b/pkg/analyzer/test/src/summary/elements_test.dart
index cc6843b..8d5d08a 100644
--- a/pkg/analyzer/test/src/summary/elements_test.dart
+++ b/pkg/analyzer/test/src/summary/elements_test.dart
@@ -12928,14 +12928,14 @@
''');
var x = library.definingCompilationUnit.topLevelVariables[0];
var xExpr = x.constantInitializer as InstanceCreationExpression;
- var xType = xExpr.constructorName.staticElement!.returnType;
+ var xType = xExpr.constructorName.staticElement!.returnType2;
_assertTypeStr(
xType,
'C<int>',
);
var y = library.definingCompilationUnit.topLevelVariables[0];
var yExpr = y.constantInitializer as InstanceCreationExpression;
- var yType = yExpr.constructorName.staticElement!.returnType;
+ var yType = yExpr.constructorName.staticElement!.returnType2;
_assertTypeStr(yType, 'C<int>');
}
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index 8df7a54..0943682 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -1891,7 +1891,7 @@
_withIndent(() {
_sink.writeln('GenericFunctionTypeElement');
_writeParameterElements(element.parameters);
- _writeType('returnType', element.returnType);
+ _writeType('returnType', element.returnType2);
_writeType('type', element.type);
});
}
diff --git a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
index 23a1f44..6a8b327 100644
--- a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
+++ b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
@@ -266,11 +266,11 @@
ClassElement c = findElement.class_('C');
PropertyAccessorElement x = c.accessors[0];
- expect(x.returnType, VoidTypeImpl.instance);
+ expect(x.returnType2, VoidTypeImpl.instance);
MethodElement operator = c.methods[0];
expect(operator.displayName, '[]=');
- expect(operator.returnType, VoidTypeImpl.instance);
+ expect(operator.returnType2, VoidTypeImpl.instance);
}
test_implicitVoidReturnType_derived() async {
@@ -287,11 +287,11 @@
ClassElement c = findElement.class_('Derived');
PropertyAccessorElement x = c.accessors[0];
- expect(x.returnType, VoidTypeImpl.instance);
+ expect(x.returnType2, VoidTypeImpl.instance);
MethodElement operator = c.methods[0];
expect(operator.displayName, '[]=');
- expect(operator.returnType, VoidTypeImpl.instance);
+ expect(operator.returnType2, VoidTypeImpl.instance);
}
test_listMap_empty() async {
diff --git a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
index ade1d61..a8bf9f8 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
@@ -415,7 +415,7 @@
}
// return type
- var returnType = element.returnType;
+ var returnType = element.returnType2;
if (!isSetter) {
var typeWritten = writeType(returnType,
groupName: returnTypeGroupName, methodBeingCopied: element);
diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart
index ba9f719..691b013 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart
@@ -641,7 +641,7 @@
}
}
} else if (parent is MethodDeclaration) {
- type = parent.declaredElement?.returnType;
+ type = parent.declaredElement?.returnType2;
if (type != null && type is VoidType) {
optype.includeVoidReturnSuggestions = true;
}
diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart
index f3446c6..226f13a 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart
@@ -128,7 +128,7 @@
if (element.kind == ElementKind.SETTER) {
return null;
} else {
- return element.returnType.getDisplayString(withNullability: false);
+ return element.returnType2.getDisplayString(withNullability: false);
}
} else if (element is VariableElement) {
var type = element.type;
@@ -136,7 +136,7 @@
} else if (element is TypeAliasElement) {
var aliasedElement = element.aliasedElement;
if (aliasedElement is GenericFunctionTypeElement) {
- var returnType = aliasedElement.returnType;
+ var returnType = aliasedElement.returnType2;
return returnType.getDisplayString(withNullability: false);
} else {
return null;
diff --git a/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart b/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart
index 9213e5b..a0838ea 100644
--- a/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart
+++ b/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart
@@ -245,7 +245,7 @@
if (element.kind == analyzer.ElementKind.SETTER) {
return null;
}
- return element.returnType.getDisplayString(withNullability: false);
+ return element.returnType2.getDisplayString(withNullability: false);
} else if (element is analyzer.VariableElement) {
return element.type.getDisplayString(withNullability: false);
} else if (element is analyzer.TypeAliasElement) {
diff --git a/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart b/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart
index 6e53476..14b50db 100644
--- a/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart
+++ b/pkg/analyzer_plugin/lib/utilities/completion/inherited_reference_contributor.dart
@@ -93,7 +93,7 @@
}
}
for (var elem in type.methods) {
- if (elem.returnType is! VoidType) {
+ if (elem.returnType2 is! VoidType) {
if (optype.includeReturnValueSuggestions) {
addSuggestion(elem);
}
diff --git a/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart b/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart
index 264ce1c..7bd8d0e 100644
--- a/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart
+++ b/pkg/analyzer_plugin/lib/utilities/completion/type_member_contributor.dart
@@ -81,7 +81,7 @@
if (expression is Identifier) {
var elem = expression.staticElement;
if (elem is FunctionTypedElement) {
- type = elem.returnType;
+ type = elem.returnType2;
} else if (elem is ParameterElement) {
type = elem.type;
} else if (elem is LocalVariableElement) {
diff --git a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
index 715aa54..9831c66 100644
--- a/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
+++ b/pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_dart_test.dart
@@ -1792,7 +1792,7 @@
var builder = await newBuilder();
await builder.addDartFileEdit(path, (builder) {
builder.addInsertion(content.length - 1, (builder) {
- builder.writeType(f.returnType);
+ builder.writeType(f.returnType2);
});
});
var edit = getEdit(builder);
diff --git a/pkg/nnbd_migration/lib/src/edge_builder.dart b/pkg/nnbd_migration/lib/src/edge_builder.dart
index 4d95dd4..47d5be6 100644
--- a/pkg/nnbd_migration/lib/src/edge_builder.dart
+++ b/pkg/nnbd_migration/lib/src/edge_builder.dart
@@ -1934,7 +1934,7 @@
var typeArguments = decoratedSupertype.typeArguments;
Iterable<DartType?> typeArgumentTypes;
typeArgumentTypes = typeArguments.map((t) => t!.type);
- var createdType = DecoratedType(callee.returnType, nullabilityNode,
+ var createdType = DecoratedType(callee.returnType2, nullabilityNode,
typeArguments: typeArguments);
var calleeType =
getOrComputeElementType(node, callee, targetType: createdType);
diff --git a/pkg/nnbd_migration/lib/src/fix_builder.dart b/pkg/nnbd_migration/lib/src/fix_builder.dart
index eaf80c0..b98d1cd 100644
--- a/pkg/nnbd_migration/lib/src/fix_builder.dart
+++ b/pkg/nnbd_migration/lib/src/fix_builder.dart
@@ -1047,7 +1047,7 @@
readType!,
combinerType,
rhsType,
- combiner.returnType,
+ combiner.returnType2,
combiner,
);
if (!fixBuilder._typeSystem.isSubtypeOf(combinerReturnType, writeType)) {
diff --git a/pkg/nnbd_migration/lib/src/node_builder.dart b/pkg/nnbd_migration/lib/src/node_builder.dart
index 8322e83..2d0b62b 100644
--- a/pkg/nnbd_migration/lib/src/node_builder.dart
+++ b/pkg/nnbd_migration/lib/src/node_builder.dart
@@ -284,7 +284,7 @@
_variables.recordDecoratedElementType(
valuesGetter,
DecoratedType(valuesGetter.type, makeNonNullNode(valuesTarget),
- returnType: DecoratedType(valuesGetter.returnType,
+ returnType: DecoratedType(valuesGetter.returnType2,
makeNonNullNode(valuesTarget.returnType()),
typeArguments: [
DecoratedType(classElement.thisType,