Elements. Rename all Xyz2OrMember into InternalXyzElement.
First, the character `2` has no meaning anymore. Second, saying "Internal" better represents what this interface is: an internal interface, with more precise types and additional methods. Move InternalConstructorElement into 'with' in ConstructorElementImpl. Change-Id: I22b04b4b6e786c50429359a656a8d6ca5e2fb492 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442701 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Paul Berry <paulberry@google.com>
This commit is contained in:
committed by
Commit Queue
parent
1cf0dea80f
commit
e9b8dd9cb5
@@ -884,7 +884,7 @@ class _IndexContributor extends GeneralizingAstVisitor {
|
||||
void visitDotShorthandPropertyAccess(DotShorthandPropertyAccess node) {
|
||||
IndexRelationKind kind;
|
||||
var element = node.propertyName.element;
|
||||
if (element is ConstructorElementMixin2) {
|
||||
if (element is InternalConstructorElement) {
|
||||
element = _getActualConstructorElement(element);
|
||||
kind = IndexRelationKind.IS_REFERENCED_BY_CONSTRUCTOR_TEAR_OFF;
|
||||
} else {
|
||||
|
||||
@@ -531,7 +531,7 @@ final class ArgumentListImpl extends AstNodeImpl implements ArgumentList {
|
||||
/// The list must be the same length as the number of arguments, but can
|
||||
/// contain `null` entries if a given argument doesn't correspond to a formal
|
||||
/// parameter.
|
||||
List<FormalParameterElementMixin?>? _correspondingStaticParameters;
|
||||
List<InternalFormalParameterElement?>? _correspondingStaticParameters;
|
||||
|
||||
@generated
|
||||
ArgumentListImpl({
|
||||
@@ -548,11 +548,11 @@ final class ArgumentListImpl extends AstNodeImpl implements ArgumentList {
|
||||
return leftParenthesis;
|
||||
}
|
||||
|
||||
List<FormalParameterElementMixin?>? get correspondingStaticParameters =>
|
||||
List<InternalFormalParameterElement?>? get correspondingStaticParameters =>
|
||||
_correspondingStaticParameters;
|
||||
|
||||
set correspondingStaticParameters(
|
||||
List<FormalParameterElementMixin?>? parameters,
|
||||
List<InternalFormalParameterElement?>? parameters,
|
||||
) {
|
||||
if (parameters != null && parameters.length != arguments.length) {
|
||||
throw ArgumentError(
|
||||
@@ -604,7 +604,7 @@ final class ArgumentListImpl extends AstNodeImpl implements ArgumentList {
|
||||
/// - the function being invoked is known based on static type information
|
||||
/// - the expression corresponds to one of the parameters of the function
|
||||
/// being invoked
|
||||
FormalParameterElementMixin? _getStaticParameterElementFor(
|
||||
InternalFormalParameterElement? _getStaticParameterElementFor(
|
||||
Expression expression,
|
||||
) {
|
||||
if (_correspondingStaticParameters == null ||
|
||||
@@ -1151,7 +1151,7 @@ final class AssignmentExpressionImpl extends ExpressionImpl
|
||||
ExpressionImpl _rightHandSide;
|
||||
|
||||
@override
|
||||
MethodElement2OrMember? element;
|
||||
InternalMethodElement? element;
|
||||
|
||||
@generated
|
||||
AssignmentExpressionImpl({
|
||||
@@ -1211,7 +1211,7 @@ final class AssignmentExpressionImpl extends ExpressionImpl
|
||||
/// The parameter element representing the parameter to which the value of the
|
||||
/// right operand is bound, or `null` if the AST structure is not resolved or
|
||||
/// the function being invoked is not known based on static type information.
|
||||
FormalParameterElementMixin? get _staticParameterElementForRightHandSide {
|
||||
InternalFormalParameterElement? get _staticParameterElementForRightHandSide {
|
||||
Element? executableElement;
|
||||
if (operator.type != TokenType.EQ) {
|
||||
executableElement = element;
|
||||
@@ -1226,10 +1226,10 @@ final class AssignmentExpressionImpl extends ExpressionImpl
|
||||
}
|
||||
if (operator.type == TokenType.EQ && leftHandSide is IndexExpression) {
|
||||
return formalParameters.length == 2
|
||||
? (formalParameters[1] as FormalParameterElementMixin)
|
||||
? (formalParameters[1] as InternalFormalParameterElement)
|
||||
: null;
|
||||
}
|
||||
return formalParameters[0] as FormalParameterElementMixin;
|
||||
return formalParameters[0] as InternalFormalParameterElement;
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -5514,7 +5514,7 @@ final class ConstructorNameImpl extends AstNodeImpl implements ConstructorName {
|
||||
SimpleIdentifierImpl? _name;
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? element;
|
||||
InternalConstructorElement? element;
|
||||
|
||||
@generated
|
||||
ConstructorNameImpl({
|
||||
@@ -6749,7 +6749,7 @@ final class DotShorthandConstructorInvocationImpl
|
||||
@override
|
||||
bool get canBeConst {
|
||||
var element = constructorName.element;
|
||||
if (element is! ConstructorElementMixin2) return false;
|
||||
if (element is! InternalConstructorElement) return false;
|
||||
if (!element.isConst) return false;
|
||||
|
||||
// Ensure that dependencies (e.g. default parameter values) are computed.
|
||||
@@ -7520,7 +7520,7 @@ final class EnumConstantDeclarationImpl extends DeclarationImpl
|
||||
FieldFragmentImpl? declaredFragment;
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? constructorElement;
|
||||
InternalConstructorElement? constructorElement;
|
||||
|
||||
@generated
|
||||
EnumConstantDeclarationImpl({
|
||||
@@ -7544,7 +7544,7 @@ final class EnumConstantDeclarationImpl extends DeclarationImpl
|
||||
|
||||
@Deprecated('Use constructorElement instead')
|
||||
@override
|
||||
ConstructorElementMixin2? get constructorElement2 => constructorElement;
|
||||
InternalConstructorElement? get constructorElement2 => constructorElement;
|
||||
|
||||
@generated
|
||||
@override
|
||||
@@ -8171,7 +8171,7 @@ sealed class ExpressionImpl extends CollectionElementImpl
|
||||
|
||||
@experimental
|
||||
@override
|
||||
FormalParameterElementMixin? get correspondingParameter {
|
||||
InternalFormalParameterElement? get correspondingParameter {
|
||||
var parent = this.parent;
|
||||
if (parent is ArgumentListImpl) {
|
||||
return parent._getStaticParameterElementFor(this);
|
||||
@@ -13934,7 +13934,7 @@ final class IndexExpressionImpl extends ExpressionImpl
|
||||
/// index expression is bound, or `null` if the AST structure is not resolved,
|
||||
/// or the function being invoked is not known based on static type
|
||||
/// information.
|
||||
FormalParameterElementMixin? get _staticParameterElementForIndex {
|
||||
InternalFormalParameterElement? get _staticParameterElementForIndex {
|
||||
Element? element = this.element;
|
||||
|
||||
var parent = this.parent;
|
||||
@@ -13942,7 +13942,7 @@ final class IndexExpressionImpl extends ExpressionImpl
|
||||
element = parent.writeElement ?? parent.readElement;
|
||||
}
|
||||
|
||||
if (element is ExecutableElement2OrMember) {
|
||||
if (element is InternalExecutableElement) {
|
||||
var formalParameters = element.formalParameters;
|
||||
if (formalParameters.isEmpty) {
|
||||
return null;
|
||||
@@ -17078,14 +17078,14 @@ final class NamedExpressionImpl extends ExpressionImpl
|
||||
|
||||
@experimental
|
||||
@override
|
||||
FormalParameterElementMixin? get element {
|
||||
InternalFormalParameterElement? get element {
|
||||
return _name.label.element?.ifTypeOrNull();
|
||||
}
|
||||
|
||||
@Deprecated('Use element instead')
|
||||
@experimental
|
||||
@override
|
||||
FormalParameterElementMixin? get element2 {
|
||||
InternalFormalParameterElement? get element2 {
|
||||
return element;
|
||||
}
|
||||
|
||||
@@ -19558,7 +19558,7 @@ final class PostfixExpressionImpl extends ExpressionImpl
|
||||
/// The parameter element representing the parameter to which the value of the
|
||||
/// operand is bound, or `null` ff the AST structure is not resolved or the
|
||||
/// function being invoked isn't known based on static type information.
|
||||
FormalParameterElementMixin? get _staticParameterElementForOperand {
|
||||
InternalFormalParameterElement? get _staticParameterElementForOperand {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -19568,7 +19568,7 @@ final class PostfixExpressionImpl extends ExpressionImpl
|
||||
}
|
||||
// TODO(paulberry): eliminate this cast by changing the type of
|
||||
// `staticElement` to `MethodElement2OrMember?`.
|
||||
return parameters[0] as FormalParameterElementMixin;
|
||||
return parameters[0] as InternalFormalParameterElement;
|
||||
}
|
||||
|
||||
@generated
|
||||
@@ -19832,7 +19832,7 @@ final class PrefixExpressionImpl extends ExpressionImpl
|
||||
/// The parameter element representing the parameter to which the value of the
|
||||
/// operand is bound, or `null` if the AST structure is not resolved or the
|
||||
/// function being invoked isn't known based on static type information.
|
||||
FormalParameterElementMixin? get _staticParameterElementForOperand {
|
||||
InternalFormalParameterElement? get _staticParameterElementForOperand {
|
||||
if (element == null) {
|
||||
return null;
|
||||
}
|
||||
@@ -19842,7 +19842,7 @@ final class PrefixExpressionImpl extends ExpressionImpl
|
||||
}
|
||||
// TODO(paulberry): eliminate this cast by changing the type of
|
||||
// `staticElement` to `MethodElementOrMember?`.
|
||||
return parameters[0] as FormalParameterElementMixin;
|
||||
return parameters[0] as InternalFormalParameterElement;
|
||||
}
|
||||
|
||||
@generated
|
||||
@@ -22783,7 +22783,7 @@ final class SuperConstructorInvocationImpl extends ConstructorInitializerImpl
|
||||
ArgumentListImpl _argumentList;
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? element;
|
||||
InternalConstructorElement? element;
|
||||
|
||||
@generated
|
||||
SuperConstructorInvocationImpl({
|
||||
|
||||
@@ -211,7 +211,7 @@ class ConstantVerifier extends RecursiveAstVisitor<void> {
|
||||
) {
|
||||
if (node.isConst) {
|
||||
var constructor = node.constructorName.element;
|
||||
if (constructor is ConstructorElementMixin2) {
|
||||
if (constructor is InternalConstructorElement) {
|
||||
_validateConstructorInvocation(node, constructor, node.argumentList);
|
||||
}
|
||||
} else {
|
||||
@@ -911,7 +911,7 @@ class ConstantVerifier extends RecursiveAstVisitor<void> {
|
||||
/// arguments are constant expressions.
|
||||
void _validateConstructorInvocation(
|
||||
AstNode node,
|
||||
ConstructorElementMixin2 constructor,
|
||||
InternalConstructorElement constructor,
|
||||
ArgumentList argumentList,
|
||||
) {
|
||||
var constantVisitor = ConstantVisitor(
|
||||
|
||||
@@ -183,7 +183,7 @@ class ConstantEvaluationEngine {
|
||||
// ignore it here.
|
||||
constant.evaluationResult = null;
|
||||
}
|
||||
} else if (element is ConstructorElementMixin2 &&
|
||||
} else if (element is InternalConstructorElement &&
|
||||
element.isConst &&
|
||||
constNode.arguments != null) {
|
||||
var diagnosticListener = RecordingDiagnosticListener();
|
||||
@@ -249,7 +249,7 @@ class ConstantEvaluationEngine {
|
||||
}
|
||||
|
||||
ReferenceFinder referenceFinder = ReferenceFinder(callback);
|
||||
if (constant case ConstructorElementMixin2 constructor) {
|
||||
if (constant case InternalConstructorElement constructor) {
|
||||
constant = constructor.baseElement;
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ class ConstantEvaluationEngine {
|
||||
AstNode node,
|
||||
List<TypeImpl>? typeArguments,
|
||||
List<Expression> arguments,
|
||||
ConstructorElementMixin2 constructor,
|
||||
InternalConstructorElement constructor,
|
||||
ConstantVisitor constantVisitor, {
|
||||
ConstructorInvocationImpl? invocation,
|
||||
}) {
|
||||
@@ -402,7 +402,7 @@ class ConstantEvaluationEngine {
|
||||
AstNode node,
|
||||
List<TypeImpl>? typeArguments,
|
||||
List<Expression> arguments,
|
||||
ConstructorElementMixin2 constructor,
|
||||
InternalConstructorElement constructor,
|
||||
ConstantVisitor constantVisitor, {
|
||||
ConstructorInvocationImpl? invocation,
|
||||
}) {
|
||||
@@ -462,8 +462,8 @@ class ConstantEvaluationEngine {
|
||||
|
||||
/// If [constructor] redirects to another const constructor, return the
|
||||
/// const constructor it redirects to. Otherwise return `null`.
|
||||
static ConstructorElementMixin2? getConstRedirectedConstructor(
|
||||
ConstructorElementMixin2 constructor,
|
||||
static InternalConstructorElement? getConstRedirectedConstructor(
|
||||
InternalConstructorElement constructor,
|
||||
) {
|
||||
if (!constructor.isFactory) {
|
||||
return null;
|
||||
@@ -881,7 +881,7 @@ class ConstantVisitor extends UnifyingAstVisitor<Constant> {
|
||||
return InvalidConstant.genericError(node: node);
|
||||
}
|
||||
var constructor = node.constructorName.element;
|
||||
if (constructor is ConstructorElementMixin2) {
|
||||
if (constructor is InternalConstructorElement) {
|
||||
return _evaluationEngine.evaluateAndFormatErrorsInConstructorCall(
|
||||
_library,
|
||||
node,
|
||||
@@ -2137,7 +2137,7 @@ class ConstantVisitor extends UnifyingAstVisitor<Constant> {
|
||||
DartObjectImpl value,
|
||||
) {
|
||||
var functionElement = value.toFunctionValue();
|
||||
if (functionElement is! ExecutableElement2OrMember) {
|
||||
if (functionElement is! InternalExecutableElement) {
|
||||
return value;
|
||||
}
|
||||
var valueType = functionElement.type;
|
||||
@@ -2172,7 +2172,7 @@ class ConstantVisitor extends UnifyingAstVisitor<Constant> {
|
||||
// TODO(srawlins): When all code uses [FunctionReference]s generated via
|
||||
// generic function instantiation, remove this method and all call sites.
|
||||
var functionElement = value.toFunctionValue();
|
||||
if (functionElement is! ExecutableElement2OrMember) {
|
||||
if (functionElement is! InternalExecutableElement) {
|
||||
return value;
|
||||
}
|
||||
var valueType = functionElement.type;
|
||||
@@ -2837,7 +2837,7 @@ class _InstanceCreationEvaluator {
|
||||
/// The node used for most error reporting.
|
||||
final AstNode _errorNode;
|
||||
|
||||
final ConstructorElementMixin2 _constructor;
|
||||
final InternalConstructorElement _constructor;
|
||||
|
||||
final List<TypeImpl>? _typeArguments;
|
||||
|
||||
@@ -3535,8 +3535,8 @@ class _InstanceCreationEvaluator {
|
||||
/// Returns a context message that mimics a stack trace where [superConstructor] is
|
||||
/// called by [constructor]
|
||||
DiagnosticMessageImpl _stackTraceContextMessage(
|
||||
ConstructorElementMixin2 superConstructor,
|
||||
ConstructorElementMixin2 constructor,
|
||||
InternalConstructorElement superConstructor,
|
||||
InternalConstructorElement constructor,
|
||||
) {
|
||||
return DiagnosticMessageImpl(
|
||||
filePath: constructor.firstFragment.libraryFragment.source.fullName,
|
||||
@@ -3556,7 +3556,7 @@ class _InstanceCreationEvaluator {
|
||||
DeclaredVariables declaredVariables,
|
||||
LibraryElementImpl library,
|
||||
AstNode node,
|
||||
ConstructorElementMixin2 constructor,
|
||||
InternalConstructorElement constructor,
|
||||
List<TypeImpl>? typeArguments,
|
||||
List<Expression> arguments,
|
||||
ConstantVisitor constantVisitor, {
|
||||
@@ -3662,10 +3662,10 @@ class _InstanceCreationEvaluator {
|
||||
/// chain terminates. If there is a problem (e.g. a redirection can't be
|
||||
/// found, or a cycle is encountered), the chain will be followed as far as
|
||||
/// possible and then a const factory constructor will be returned.
|
||||
static ConstructorElementMixin2 _followConstantRedirectionChain(
|
||||
ConstructorElementMixin2 constructor,
|
||||
static InternalConstructorElement _followConstantRedirectionChain(
|
||||
InternalConstructorElement constructor,
|
||||
) {
|
||||
var constructorsVisited = <ConstructorElementMixin2>{};
|
||||
var constructorsVisited = <InternalConstructorElement>{};
|
||||
while (true) {
|
||||
var redirectedConstructor =
|
||||
ConstantEvaluationEngine.getConstRedirectedConstructor(constructor);
|
||||
|
||||
@@ -944,7 +944,7 @@ class DartObjectImpl implements DartObject, Constant {
|
||||
}
|
||||
|
||||
@override
|
||||
ExecutableElement2OrMember? toFunctionValue() {
|
||||
InternalExecutableElement? toFunctionValue() {
|
||||
var state = this.state;
|
||||
return state is FunctionState ? state.element : null;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ class ElementDisplayStringBuilder {
|
||||
_writeTypesIfNotEmpty(' implements ', element.interfaces);
|
||||
}
|
||||
|
||||
void writeConstructorElement(ConstructorElementMixin2 element) {
|
||||
void writeConstructorElement(InternalConstructorElement element) {
|
||||
_writeType(element.returnType);
|
||||
|
||||
var displayName = element.name ?? '<null-name>';
|
||||
@@ -98,7 +98,7 @@ class ElementDisplayStringBuilder {
|
||||
_writeTypesIfNotEmpty(' implements ', element.interfaces);
|
||||
}
|
||||
|
||||
void writeExecutableElement(ExecutableElement2OrMember element, String name) {
|
||||
void writeExecutableElement(InternalExecutableElement element, String name) {
|
||||
if (element.kind != ElementKind.SETTER) {
|
||||
_writeType(element.returnType);
|
||||
_write(' ');
|
||||
@@ -139,7 +139,7 @@ class ElementDisplayStringBuilder {
|
||||
_writeTypesIfNotEmpty(' implements ', element.interfaces);
|
||||
}
|
||||
|
||||
void writeFormalParameterElement(FormalParameterElementMixin element) {
|
||||
void writeFormalParameterElement(InternalFormalParameterElement element) {
|
||||
if (element.isRequiredPositional) {
|
||||
_writeWithoutDelimiters(element, forElement: true);
|
||||
} else if (element.isOptionalPositional) {
|
||||
@@ -367,7 +367,7 @@ class ElementDisplayStringBuilder {
|
||||
_write('_');
|
||||
}
|
||||
|
||||
void writeVariableElement(VariableElement2OrMember element) {
|
||||
void writeVariableElement(InternalVariableElement element) {
|
||||
_writeType(element.type);
|
||||
_write(' ${element.displayName}');
|
||||
}
|
||||
@@ -401,7 +401,7 @@ class ElementDisplayStringBuilder {
|
||||
}
|
||||
|
||||
void _writeFormalParameters(
|
||||
List<FormalParameterElementMixin> parameters, {
|
||||
List<InternalFormalParameterElement> parameters, {
|
||||
required bool forElement,
|
||||
bool allowMultiline = false,
|
||||
}) {
|
||||
@@ -527,7 +527,7 @@ class ElementDisplayStringBuilder {
|
||||
}
|
||||
|
||||
void _writeWithoutDelimiters(
|
||||
FormalParameterElementMixin element, {
|
||||
InternalFormalParameterElement element, {
|
||||
required bool forElement,
|
||||
}) {
|
||||
if (element.isRequiredNamed) {
|
||||
|
||||
@@ -733,10 +733,8 @@ class ConstantInitializerImpl {
|
||||
}
|
||||
|
||||
class ConstructorElementImpl extends ExecutableElementImpl
|
||||
implements
|
||||
ConstantEvaluationTarget,
|
||||
ConstructorElementMixin2,
|
||||
ConstructorElement {
|
||||
with InternalConstructorElement
|
||||
implements ConstantEvaluationTarget {
|
||||
@override
|
||||
final Reference reference;
|
||||
|
||||
@@ -747,7 +745,7 @@ class ConstructorElementImpl extends ExecutableElementImpl
|
||||
final ConstructorFragmentImpl firstFragment;
|
||||
|
||||
/// The constructor to which this constructor is redirecting.
|
||||
ConstructorElementMixin2? _redirectedConstructor;
|
||||
InternalConstructorElement? _redirectedConstructor;
|
||||
|
||||
/// The super-constructor which this constructor is invoking, or `null` if
|
||||
/// this constructor is not generative, or is redirecting, or the
|
||||
@@ -755,7 +753,7 @@ class ConstructorElementImpl extends ExecutableElementImpl
|
||||
///
|
||||
// TODO(scheglov): We cannot have both super and redirecting constructors.
|
||||
// So, ideally we should have some kind of "either" or "variant" here.
|
||||
ConstructorElementMixin2? _superConstructor;
|
||||
InternalConstructorElement? _superConstructor;
|
||||
|
||||
ConstructorElementImpl({
|
||||
required this.name,
|
||||
@@ -847,18 +845,18 @@ class ConstructorElementImpl extends ExecutableElementImpl
|
||||
}
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? get redirectedConstructor {
|
||||
InternalConstructorElement? get redirectedConstructor {
|
||||
_ensureReadResolution();
|
||||
return _redirectedConstructor;
|
||||
}
|
||||
|
||||
set redirectedConstructor(ConstructorElementMixin2? value) {
|
||||
set redirectedConstructor(InternalConstructorElement? value) {
|
||||
_redirectedConstructor = value;
|
||||
}
|
||||
|
||||
@Deprecated('Use redirectedConstructor instead')
|
||||
@override
|
||||
ConstructorElementMixin2? get redirectedConstructor2 {
|
||||
InternalConstructorElement? get redirectedConstructor2 {
|
||||
return redirectedConstructor;
|
||||
}
|
||||
|
||||
@@ -873,18 +871,18 @@ class ConstructorElementImpl extends ExecutableElementImpl
|
||||
}
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? get superConstructor {
|
||||
InternalConstructorElement? get superConstructor {
|
||||
_ensureReadResolution();
|
||||
return _superConstructor;
|
||||
}
|
||||
|
||||
set superConstructor(ConstructorElementMixin2? superConstructor) {
|
||||
set superConstructor(InternalConstructorElement? superConstructor) {
|
||||
_superConstructor = superConstructor;
|
||||
}
|
||||
|
||||
@Deprecated('Use superConstructor instead')
|
||||
@override
|
||||
ConstructorElementMixin2? get superConstructor2 {
|
||||
InternalConstructorElement? get superConstructor2 {
|
||||
return superConstructor;
|
||||
}
|
||||
|
||||
@@ -931,36 +929,6 @@ class ConstructorElementImpl extends ExecutableElementImpl
|
||||
}
|
||||
}
|
||||
|
||||
/// Common implementation for methods defined in [ConstructorElement].
|
||||
mixin ConstructorElementMixin2 on ExecutableElement2OrMember
|
||||
implements ConstructorElement {
|
||||
@override
|
||||
ConstructorElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
InterfaceElementImpl get enclosingElement;
|
||||
|
||||
@override
|
||||
LibraryElementImpl get library;
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? get redirectedConstructor;
|
||||
|
||||
@Deprecated('Use redirectedConstructor instead')
|
||||
@override
|
||||
ConstructorElementMixin2? get redirectedConstructor2;
|
||||
|
||||
@override
|
||||
InterfaceTypeImpl get returnType;
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? get superConstructor;
|
||||
|
||||
@Deprecated('Use superConstructor instead')
|
||||
@override
|
||||
ConstructorElementMixin2? get superConstructor2;
|
||||
}
|
||||
|
||||
/// A concrete implementation of a [ConstructorFragment].
|
||||
class ConstructorFragmentImpl extends ExecutableFragmentImpl
|
||||
implements ConstructorFragment {
|
||||
@@ -2188,30 +2156,8 @@ class EnumFragmentImpl extends InterfaceFragmentImpl implements EnumFragment {
|
||||
}
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// `ExecutableElement2`.
|
||||
mixin ExecutableElement2OrMember implements ExecutableElement {
|
||||
@override
|
||||
ExecutableElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
List<FormalParameterElementMixin> get formalParameters;
|
||||
|
||||
@override
|
||||
MetadataImpl get metadata;
|
||||
|
||||
@override
|
||||
TypeImpl get returnType;
|
||||
|
||||
@override
|
||||
FunctionTypeImpl get type;
|
||||
|
||||
@override
|
||||
List<TypeParameterElementImpl> get typeParameters;
|
||||
}
|
||||
|
||||
abstract class ExecutableElementImpl extends FunctionTypedElementImpl
|
||||
with ExecutableElement2OrMember, DeferredResolutionReadingMixin
|
||||
with InternalExecutableElement, DeferredResolutionReadingMixin
|
||||
implements AnnotatableElementImpl {
|
||||
TypeImpl? _returnType;
|
||||
FunctionTypeImpl? _type;
|
||||
@@ -2817,22 +2763,8 @@ class ExtensionTypeFragmentImpl extends InterfaceFragmentImpl
|
||||
}
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// `FieldElement2`.
|
||||
mixin FieldElement2OrMember on PropertyInducingElement2OrMember
|
||||
implements FieldElement {
|
||||
@override
|
||||
FieldElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
FieldFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<FieldFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
class FieldElementImpl extends PropertyInducingElementImpl
|
||||
with FieldElement2OrMember {
|
||||
with InternalFieldElement {
|
||||
@override
|
||||
final Reference reference;
|
||||
|
||||
@@ -3151,7 +3083,7 @@ class FieldFragmentImpl extends PropertyInducingFragmentImpl
|
||||
}
|
||||
|
||||
class FormalParameterElementImpl extends PromotableElementImpl
|
||||
with FormalParameterElementMixin {
|
||||
with InternalFormalParameterElement {
|
||||
final FormalParameterFragmentImpl wrappedElement;
|
||||
|
||||
@override
|
||||
@@ -3366,39 +3298,6 @@ class FormalParameterElementImpl extends PromotableElementImpl
|
||||
// .toList();
|
||||
}
|
||||
|
||||
/// A mixin that provides a common implementation for methods defined in
|
||||
/// [FormalParameterElement].
|
||||
mixin FormalParameterElementMixin on VariableElement2OrMember
|
||||
implements FormalParameterElement, SharedNamedFunctionParameter {
|
||||
@override
|
||||
FormalParameterElementImpl get baseElement;
|
||||
|
||||
ParameterKind get parameterKind;
|
||||
|
||||
@override
|
||||
TypeImpl get type;
|
||||
|
||||
@override
|
||||
List<TypeParameterElementImpl> get typeParameters;
|
||||
|
||||
@override
|
||||
void appendToWithoutDelimiters(StringBuffer buffer) {
|
||||
buffer.write(type.getDisplayString());
|
||||
buffer.write(' ');
|
||||
buffer.write(displayName);
|
||||
if (defaultValueCode != null) {
|
||||
buffer.write(' = ');
|
||||
buffer.write(defaultValueCode);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Use appendToWithoutDelimiters instead')
|
||||
@override
|
||||
void appendToWithoutDelimiters2(StringBuffer buffer) {
|
||||
appendToWithoutDelimiters(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
class FormalParameterFragmentImpl extends VariableFragmentImpl
|
||||
implements FormalParameterFragment {
|
||||
@override
|
||||
@@ -4060,22 +3959,8 @@ class GenericFunctionTypeFragmentImpl extends FragmentImpl
|
||||
}
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// [GetterElement].
|
||||
mixin GetterElement2OrMember on PropertyAccessorElement2OrMember
|
||||
implements GetterElement {
|
||||
@override
|
||||
GetterElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
GetterFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<GetterFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
class GetterElementImpl extends PropertyAccessorElementImpl
|
||||
with GetterElement2OrMember {
|
||||
with InternalGetterElement {
|
||||
@override
|
||||
Reference reference;
|
||||
|
||||
@@ -4587,7 +4472,7 @@ recorded above.
|
||||
}
|
||||
}
|
||||
|
||||
Iterable<PropertyAccessorElement2OrMember> _implementationsOfGetter(
|
||||
Iterable<InternalPropertyAccessorElement> _implementationsOfGetter(
|
||||
String name,
|
||||
) sync* {
|
||||
var visitedElements = <InstanceElement>{};
|
||||
@@ -4595,7 +4480,7 @@ recorded above.
|
||||
while (element != null && visitedElements.add(element)) {
|
||||
var getter = element.getGetter(name);
|
||||
if (getter != null) {
|
||||
yield getter as PropertyAccessorElement2OrMember;
|
||||
yield getter as InternalPropertyAccessorElement;
|
||||
}
|
||||
if (element is! InterfaceElement) {
|
||||
return;
|
||||
@@ -4604,7 +4489,7 @@ recorded above.
|
||||
mixin as InterfaceTypeImpl;
|
||||
getter = mixin.element.getGetter(name);
|
||||
if (getter != null) {
|
||||
yield getter as PropertyAccessorElement2OrMember;
|
||||
yield getter as InternalPropertyAccessorElement;
|
||||
}
|
||||
}
|
||||
var supertype = element.firstFragment.supertype;
|
||||
@@ -4613,13 +4498,13 @@ recorded above.
|
||||
}
|
||||
}
|
||||
|
||||
Iterable<MethodElement2OrMember> _implementationsOfMethod(String name) sync* {
|
||||
Iterable<InternalMethodElement> _implementationsOfMethod(String name) sync* {
|
||||
var visitedElements = <InstanceElement>{};
|
||||
InstanceElement? element = this;
|
||||
while (element != null && visitedElements.add(element)) {
|
||||
var method = element.getMethod(name);
|
||||
if (method != null) {
|
||||
yield method as MethodElement2OrMember;
|
||||
yield method as InternalMethodElement;
|
||||
}
|
||||
if (element is! InterfaceElement) {
|
||||
return;
|
||||
@@ -4628,7 +4513,7 @@ recorded above.
|
||||
mixin as InterfaceTypeImpl;
|
||||
method = mixin.element.getMethod(name);
|
||||
if (method != null) {
|
||||
yield method as MethodElement2OrMember;
|
||||
yield method as InternalMethodElement;
|
||||
}
|
||||
}
|
||||
var supertype = element.firstFragment.supertype;
|
||||
@@ -4637,7 +4522,7 @@ recorded above.
|
||||
}
|
||||
}
|
||||
|
||||
Iterable<PropertyAccessorElement2OrMember> _implementationsOfSetter(
|
||||
Iterable<InternalPropertyAccessorElement> _implementationsOfSetter(
|
||||
String name,
|
||||
) sync* {
|
||||
var visitedElements = <InstanceElement>{};
|
||||
@@ -4645,7 +4530,7 @@ recorded above.
|
||||
while (element != null && visitedElements.add(element)) {
|
||||
var setter = element.getSetter(name);
|
||||
if (setter != null) {
|
||||
yield setter as PropertyAccessorElement2OrMember;
|
||||
yield setter as InternalPropertyAccessorElement;
|
||||
}
|
||||
if (element is! InterfaceElement) {
|
||||
return;
|
||||
@@ -4654,7 +4539,7 @@ recorded above.
|
||||
mixin as InterfaceTypeImpl;
|
||||
setter = mixin.element.getSetter(name);
|
||||
if (setter != null) {
|
||||
yield setter as PropertyAccessorElement2OrMember;
|
||||
yield setter as InternalPropertyAccessorElement;
|
||||
}
|
||||
}
|
||||
var supertype = element.firstFragment.supertype;
|
||||
@@ -5147,7 +5032,7 @@ abstract class InterfaceElementImpl extends InstanceElementImpl
|
||||
/// This method should be used only for error recovery during analysis,
|
||||
/// when instance access to a static class member, defined in this class,
|
||||
/// or a superclass.
|
||||
GetterElement2OrMember? lookupStaticGetter(
|
||||
InternalGetterElement? lookupStaticGetter(
|
||||
String name,
|
||||
LibraryElement library,
|
||||
) {
|
||||
@@ -5163,7 +5048,7 @@ abstract class InterfaceElementImpl extends InstanceElementImpl
|
||||
/// This method should be used only for error recovery during analysis,
|
||||
/// when instance access to a static class member, defined in this class,
|
||||
/// or a superclass.
|
||||
MethodElement2OrMember? lookupStaticMethod(
|
||||
InternalMethodElement? lookupStaticMethod(
|
||||
String name,
|
||||
LibraryElement library,
|
||||
) {
|
||||
@@ -5177,7 +5062,7 @@ abstract class InterfaceElementImpl extends InstanceElementImpl
|
||||
/// This method should be used only for error recovery during analysis,
|
||||
/// when instance access to a static class member, defined in this class,
|
||||
/// or a superclass.
|
||||
SetterElement2OrMember? lookupStaticSetter(
|
||||
InternalSetterElement? lookupStaticSetter(
|
||||
String name,
|
||||
LibraryElement library,
|
||||
) {
|
||||
@@ -5330,6 +5215,190 @@ abstract class InterfaceFragmentImpl extends InstanceFragmentImpl
|
||||
}
|
||||
}
|
||||
|
||||
mixin InternalConstructorElement on InternalExecutableElement
|
||||
implements ConstructorElement {
|
||||
@override
|
||||
ConstructorElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
InterfaceElementImpl get enclosingElement;
|
||||
|
||||
@override
|
||||
ConstructorFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<ConstructorFragmentImpl> get fragments;
|
||||
|
||||
@override
|
||||
LibraryElementImpl get library;
|
||||
|
||||
@override
|
||||
InternalConstructorElement? get redirectedConstructor;
|
||||
|
||||
@Deprecated('Use redirectedConstructor instead')
|
||||
@override
|
||||
InternalConstructorElement? get redirectedConstructor2;
|
||||
|
||||
@override
|
||||
InterfaceTypeImpl get returnType;
|
||||
|
||||
@override
|
||||
InternalConstructorElement? get superConstructor;
|
||||
|
||||
@Deprecated('Use superConstructor instead')
|
||||
@override
|
||||
InternalConstructorElement? get superConstructor2;
|
||||
}
|
||||
|
||||
mixin InternalExecutableElement implements ExecutableElement {
|
||||
@override
|
||||
ExecutableElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
List<InternalFormalParameterElement> get formalParameters;
|
||||
|
||||
@override
|
||||
MetadataImpl get metadata;
|
||||
|
||||
@override
|
||||
TypeImpl get returnType;
|
||||
|
||||
@override
|
||||
FunctionTypeImpl get type;
|
||||
|
||||
@override
|
||||
List<TypeParameterElementImpl> get typeParameters;
|
||||
}
|
||||
|
||||
mixin InternalFieldElement on InternalPropertyInducingElement
|
||||
implements FieldElement {
|
||||
@override
|
||||
FieldElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
FieldFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<FieldFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
mixin InternalFormalParameterElement on InternalVariableElement
|
||||
implements FormalParameterElement, SharedNamedFunctionParameter {
|
||||
@override
|
||||
FormalParameterElementImpl get baseElement;
|
||||
|
||||
ParameterKind get parameterKind;
|
||||
|
||||
@override
|
||||
TypeImpl get type;
|
||||
|
||||
@override
|
||||
List<TypeParameterElementImpl> get typeParameters;
|
||||
|
||||
@override
|
||||
void appendToWithoutDelimiters(StringBuffer buffer) {
|
||||
buffer.write(type.getDisplayString());
|
||||
buffer.write(' ');
|
||||
buffer.write(displayName);
|
||||
if (defaultValueCode != null) {
|
||||
buffer.write(' = ');
|
||||
buffer.write(defaultValueCode);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Use appendToWithoutDelimiters instead')
|
||||
@override
|
||||
void appendToWithoutDelimiters2(StringBuffer buffer) {
|
||||
appendToWithoutDelimiters(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
mixin InternalGetterElement on InternalPropertyAccessorElement
|
||||
implements GetterElement {
|
||||
@override
|
||||
GetterElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
GetterFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<GetterFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
mixin InternalMethodElement on InternalExecutableElement
|
||||
implements MethodElement {
|
||||
@override
|
||||
MethodElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
MethodFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<MethodFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
mixin InternalPropertyAccessorElement on InternalExecutableElement
|
||||
implements PropertyAccessorElement {
|
||||
@override
|
||||
PropertyAccessorElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
PropertyAccessorFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<PropertyAccessorFragmentImpl> get fragments;
|
||||
|
||||
@override
|
||||
InternalPropertyInducingElement get variable;
|
||||
|
||||
@Deprecated('Use variable instead')
|
||||
@override
|
||||
InternalPropertyInducingElement? get variable3;
|
||||
}
|
||||
|
||||
mixin InternalPropertyInducingElement on InternalVariableElement
|
||||
implements PropertyInducingElement {
|
||||
@override
|
||||
PropertyInducingElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
InternalGetterElement? get getter;
|
||||
|
||||
@Deprecated('Use getter instead')
|
||||
@override
|
||||
InternalGetterElement? get getter2;
|
||||
|
||||
@override
|
||||
LibraryElementImpl get library;
|
||||
|
||||
@override
|
||||
MetadataImpl get metadata;
|
||||
|
||||
@override
|
||||
InternalSetterElement? get setter;
|
||||
|
||||
@Deprecated('Use setter instead')
|
||||
@override
|
||||
InternalSetterElement? get setter2;
|
||||
}
|
||||
|
||||
mixin InternalSetterElement on InternalPropertyAccessorElement
|
||||
implements SetterElement {
|
||||
@override
|
||||
SetterElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
SetterFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<SetterFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
mixin InternalVariableElement implements VariableElement {
|
||||
@override
|
||||
TypeImpl get type;
|
||||
}
|
||||
|
||||
class JoinPatternVariableElementImpl extends PatternVariableElementImpl
|
||||
implements JoinPatternVariableElement {
|
||||
JoinPatternVariableElementImpl(super._wrappedElement);
|
||||
@@ -7481,22 +7550,8 @@ final class MetadataImpl implements Metadata {
|
||||
}
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// `MethodElement2`.
|
||||
mixin MethodElement2OrMember on ExecutableElement2OrMember
|
||||
implements MethodElement {
|
||||
@override
|
||||
MethodElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
MethodFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<MethodFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
class MethodElementImpl extends ExecutableElementImpl
|
||||
with MethodElement2OrMember {
|
||||
with InternalMethodElement {
|
||||
@override
|
||||
final Reference reference;
|
||||
|
||||
@@ -8609,29 +8664,8 @@ class PrefixFragmentImpl extends FragmentImpl implements PrefixFragment {
|
||||
|
||||
abstract class PromotableElementImpl extends VariableElementImpl {}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// `PropertyAccessorElement2`.
|
||||
mixin PropertyAccessorElement2OrMember on ExecutableElement2OrMember
|
||||
implements PropertyAccessorElement {
|
||||
@override
|
||||
PropertyAccessorElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
PropertyAccessorFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<PropertyAccessorFragmentImpl> get fragments;
|
||||
|
||||
@override
|
||||
PropertyInducingElement2OrMember get variable;
|
||||
|
||||
@Deprecated('Use variable instead')
|
||||
@override
|
||||
PropertyInducingElement2OrMember? get variable3;
|
||||
}
|
||||
|
||||
abstract class PropertyAccessorElementImpl extends ExecutableElementImpl
|
||||
with PropertyAccessorElement2OrMember {
|
||||
with InternalPropertyAccessorElement {
|
||||
PropertyInducingElementImpl? _variable3;
|
||||
|
||||
@override
|
||||
@@ -8747,36 +8781,8 @@ sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
|
||||
}
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// [PropertyInducingElement].
|
||||
mixin PropertyInducingElement2OrMember on VariableElement2OrMember
|
||||
implements PropertyInducingElement {
|
||||
@override
|
||||
PropertyInducingElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
GetterElement2OrMember? get getter;
|
||||
|
||||
@Deprecated('Use getter instead')
|
||||
@override
|
||||
GetterElement2OrMember? get getter2;
|
||||
|
||||
@override
|
||||
LibraryElementImpl get library;
|
||||
|
||||
@override
|
||||
MetadataImpl get metadata;
|
||||
|
||||
@override
|
||||
SetterElement2OrMember? get setter;
|
||||
|
||||
@Deprecated('Use setter instead')
|
||||
@override
|
||||
SetterElement2OrMember? get setter2;
|
||||
}
|
||||
|
||||
abstract class PropertyInducingElementImpl extends VariableElementImpl
|
||||
with PropertyInducingElement2OrMember, DeferredResolutionReadingMixin
|
||||
with InternalPropertyInducingElement, DeferredResolutionReadingMixin
|
||||
implements AnnotatableElementImpl {
|
||||
@override
|
||||
GetterElementImpl? getter;
|
||||
@@ -8962,22 +8968,8 @@ abstract class PropertyInducingFragmentImpl
|
||||
MetadataImpl get metadata2 => metadata;
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// [SetterElement].
|
||||
mixin SetterElement2OrMember on PropertyAccessorElement2OrMember
|
||||
implements SetterElement {
|
||||
@override
|
||||
SetterElementImpl get baseElement;
|
||||
|
||||
@override
|
||||
SetterFragmentImpl get firstFragment;
|
||||
|
||||
@override
|
||||
List<SetterFragmentImpl> get fragments;
|
||||
}
|
||||
|
||||
class SetterElementImpl extends PropertyAccessorElementImpl
|
||||
with SetterElement2OrMember {
|
||||
with InternalSetterElement {
|
||||
@override
|
||||
Reference reference;
|
||||
|
||||
@@ -9199,7 +9191,7 @@ class SuperFormalParameterElementImpl extends FormalParameterElementImpl
|
||||
}
|
||||
|
||||
@override
|
||||
FormalParameterElementMixin? get superConstructorParameter {
|
||||
InternalFormalParameterElement? get superConstructorParameter {
|
||||
var enclosingElement = this.enclosingElement;
|
||||
if (enclosingElement is ConstructorElementImpl) {
|
||||
var superConstructor = enclosingElement.superConstructor;
|
||||
@@ -9224,7 +9216,7 @@ class SuperFormalParameterElementImpl extends FormalParameterElementImpl
|
||||
|
||||
@Deprecated('Use superConstructorParameter instead')
|
||||
@override
|
||||
FormalParameterElementMixin? get superConstructorParameter2 {
|
||||
InternalFormalParameterElement? get superConstructorParameter2 {
|
||||
return superConstructorParameter;
|
||||
}
|
||||
|
||||
@@ -10309,15 +10301,8 @@ mixin TypeParameterizedFragmentMixin on FragmentImpl
|
||||
void _ensureReadResolution();
|
||||
}
|
||||
|
||||
/// Common base class for all analyzer-internal classes that implement
|
||||
/// `VariableElement2`.
|
||||
mixin VariableElement2OrMember implements VariableElement {
|
||||
@override
|
||||
TypeImpl get type;
|
||||
}
|
||||
|
||||
abstract class VariableElementImpl extends ElementImpl
|
||||
with VariableElement2OrMember
|
||||
with InternalVariableElement
|
||||
implements ConstantEvaluationTarget {
|
||||
ConstantInitializerImpl? _constantInitializer;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ extension DartTypeExtension on DartType {
|
||||
extension Element2Extension on Element {
|
||||
TypeImpl? get firstParameterType {
|
||||
var self = this;
|
||||
if (self is MethodElement2OrMember) {
|
||||
if (self is InternalMethodElement) {
|
||||
return self.formalParameters.firstOrNull?.type;
|
||||
}
|
||||
return null;
|
||||
@@ -153,7 +153,8 @@ extension ExecutableElement2Extension on ExecutableElement {
|
||||
}
|
||||
}
|
||||
|
||||
extension FormalParameterElementMixinExtension on FormalParameterElementMixin {
|
||||
extension FormalParameterElementMixinExtension
|
||||
on InternalFormalParameterElement {
|
||||
/// Returns [FormalParameterElementImpl] with the specified properties
|
||||
/// replaced.
|
||||
FormalParameterElementImpl copyWith({
|
||||
|
||||
@@ -191,7 +191,7 @@ class GenericInferrer {
|
||||
/// [argumentTypes].
|
||||
void constrainArguments2({
|
||||
InterfaceFragmentImpl? genericClass,
|
||||
required List<FormalParameterElementMixin> parameters,
|
||||
required List<InternalFormalParameterElement> parameters,
|
||||
required List<TypeImpl> argumentTypes,
|
||||
required AstNodeImpl? nodeForTesting,
|
||||
}) {
|
||||
|
||||
@@ -278,7 +278,7 @@ class GreatestLowerBoundHelper {
|
||||
var fParameters = f.formalParameters;
|
||||
var gParameters = g.formalParameters;
|
||||
|
||||
var parameters = <FormalParameterElementMixin>[];
|
||||
var parameters = <InternalFormalParameterElement>[];
|
||||
var fIndex = 0;
|
||||
var gIndex = 0;
|
||||
while (fIndex < fParameters.length && gIndex < gParameters.length) {
|
||||
|
||||
@@ -18,7 +18,7 @@ import 'package:meta/meta.dart';
|
||||
/// Failure because of there is no most specific signature in [candidates].
|
||||
class CandidatesConflict extends Conflict {
|
||||
/// The list has at least two items, because the only item is always valid.
|
||||
final List<ExecutableElement2OrMember> candidates;
|
||||
final List<InternalExecutableElement> candidates;
|
||||
|
||||
CandidatesConflict({required super.name, required this.candidates});
|
||||
}
|
||||
@@ -33,8 +33,8 @@ class Conflict {
|
||||
|
||||
/// Failure because of a getter and a method from direct superinterfaces.
|
||||
class GetterMethodConflict extends Conflict {
|
||||
final ExecutableElement2OrMember getter;
|
||||
final ExecutableElement2OrMember method;
|
||||
final InternalExecutableElement getter;
|
||||
final InternalExecutableElement method;
|
||||
|
||||
GetterMethodConflict({
|
||||
required super.name,
|
||||
@@ -46,8 +46,8 @@ class GetterMethodConflict extends Conflict {
|
||||
/// The extension type has both an extension and non-extension member
|
||||
/// signature with the same name.
|
||||
class HasNonExtensionAndExtensionMemberConflict extends Conflict {
|
||||
final List<ExecutableElement2OrMember> nonExtension;
|
||||
final List<ExecutableElement2OrMember> extension;
|
||||
final List<InternalExecutableElement> nonExtension;
|
||||
final List<InternalExecutableElement> extension;
|
||||
|
||||
HasNonExtensionAndExtensionMemberConflict({
|
||||
required super.name,
|
||||
@@ -68,7 +68,7 @@ class InheritanceManager3 {
|
||||
|
||||
/// Tracks signatures from superinterfaces that were combined.
|
||||
/// It is used to track dependencies in manifests.
|
||||
final Map<InterfaceElementImpl, Map<Name, List<ExecutableElement2OrMember>>>
|
||||
final Map<InterfaceElementImpl, Map<Name, List<InternalExecutableElement>>>
|
||||
_combinedSignatures = {};
|
||||
|
||||
/// The set of classes that are currently being processed, used to detect
|
||||
@@ -81,7 +81,7 @@ class InheritanceManager3 {
|
||||
/// not `null`, add a new [Conflict] to it.
|
||||
FunctionTypeImpl? combineSignatureTypes({
|
||||
required TypeSystemImpl typeSystem,
|
||||
required List<ExecutableElement2OrMember> candidates,
|
||||
required List<InternalExecutableElement> candidates,
|
||||
required Name name,
|
||||
List<Conflict>? conflicts,
|
||||
}) {
|
||||
@@ -123,10 +123,7 @@ class InheritanceManager3 {
|
||||
/// declared at all, or because there is no the most specific signature.
|
||||
///
|
||||
/// This is equivalent to `getInheritedMap(type)[name]`.
|
||||
ExecutableElement2OrMember? getInherited(
|
||||
InterfaceElement element,
|
||||
Name name,
|
||||
) {
|
||||
InternalExecutableElement? getInherited(InterfaceElement element, Name name) {
|
||||
element as InterfaceElementImpl; // TODO(scheglov): remove cast
|
||||
return getInheritedMap(element)[name];
|
||||
}
|
||||
@@ -158,7 +155,7 @@ class InheritanceManager3 {
|
||||
/// If there is no most specific signature for a name, the corresponding name
|
||||
/// will not be included.
|
||||
@experimental
|
||||
Map<Name, ExecutableElement2OrMember> getInheritedMap(
|
||||
Map<Name, InternalExecutableElement> getInheritedMap(
|
||||
InterfaceElement element,
|
||||
) {
|
||||
element as InterfaceElementImpl; // TODO(scheglov): remove cast
|
||||
@@ -200,7 +197,7 @@ class InheritanceManager3 {
|
||||
/// given number of mixins after it are considered. For example for `1` in
|
||||
/// `class C extends S with M1, M2, M3`, only `S` and `M1` are considered.
|
||||
@experimental
|
||||
ExecutableElement2OrMember? getMember(
|
||||
InternalExecutableElement? getMember(
|
||||
InterfaceElement element,
|
||||
Name name, {
|
||||
bool concrete = false,
|
||||
@@ -239,7 +236,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
/// Returns the result of [getMember] with [type] substitution.
|
||||
ExecutableElement2OrMember? getMember3(
|
||||
InternalExecutableElement? getMember3(
|
||||
InterfaceType type,
|
||||
Name name, {
|
||||
bool concrete = false,
|
||||
@@ -265,7 +262,7 @@ class InheritanceManager3 {
|
||||
/// Return all members of mixins, superclasses, and interfaces that a member
|
||||
/// with the given [name], defined in the [element], would override; or `null`
|
||||
/// if no members would be overridden.
|
||||
List<ExecutableElement2OrMember>? getOverridden(
|
||||
List<InternalExecutableElement>? getOverridden(
|
||||
InterfaceElement element,
|
||||
Name name,
|
||||
) {
|
||||
@@ -281,7 +278,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
void _addCandidates({
|
||||
required Map<Name, List<ExecutableElement2OrMember>> namedCandidates,
|
||||
required Map<Name, List<InternalExecutableElement>> namedCandidates,
|
||||
required MapSubstitution substitution,
|
||||
required Interface interface,
|
||||
}) {
|
||||
@@ -294,7 +291,7 @@ class InheritanceManager3 {
|
||||
|
||||
var candidates = namedCandidates[name];
|
||||
if (candidates == null) {
|
||||
candidates = <ExecutableElement2OrMember>[];
|
||||
candidates = <InternalExecutableElement>[];
|
||||
namedCandidates[name] = candidates;
|
||||
}
|
||||
|
||||
@@ -303,12 +300,12 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
void _addImplemented(
|
||||
Map<Name, ExecutableElement2OrMember> implemented,
|
||||
Map<Name, InternalExecutableElement> implemented,
|
||||
InterfaceElementImpl element,
|
||||
) {
|
||||
var libraryUri = element.library.uri;
|
||||
|
||||
void addMember(ExecutableElement2OrMember member) {
|
||||
void addMember(InternalExecutableElement member) {
|
||||
if (!member.isAbstract && !member.isStatic) {
|
||||
var lookupName = member.lookupName;
|
||||
if (lookupName != null) {
|
||||
@@ -324,7 +321,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
void _addMixinMembers({
|
||||
required Map<Name, ExecutableElement2OrMember> implemented,
|
||||
required Map<Name, InternalExecutableElement> implemented,
|
||||
required MapSubstitution substitution,
|
||||
required Interface mixin,
|
||||
}) {
|
||||
@@ -350,12 +347,12 @@ class InheritanceManager3 {
|
||||
/// new [Conflict] instance that describes it.
|
||||
Conflict? _checkForGetterMethodConflict(
|
||||
Name name,
|
||||
List<ExecutableElement2OrMember> candidates,
|
||||
List<InternalExecutableElement> candidates,
|
||||
) {
|
||||
assert(candidates.length > 1);
|
||||
|
||||
ExecutableElement2OrMember? getter;
|
||||
ExecutableElement2OrMember? method;
|
||||
InternalExecutableElement? getter;
|
||||
InternalExecutableElement? method;
|
||||
for (var candidate in candidates) {
|
||||
var kind = candidate.kind;
|
||||
if (kind == ElementKind.GETTER) {
|
||||
@@ -377,9 +374,9 @@ class InheritanceManager3 {
|
||||
///
|
||||
/// If such signature does not exist, return `null`, and if [conflicts] is
|
||||
/// not `null`, add a new [Conflict] to it.
|
||||
ExecutableElement2OrMember? _combineSignatures({
|
||||
InternalExecutableElement? _combineSignatures({
|
||||
required InterfaceElementImpl targetClass,
|
||||
required List<ExecutableElement2OrMember> candidates,
|
||||
required List<InternalExecutableElement> candidates,
|
||||
required Name name,
|
||||
List<Conflict>? conflicts,
|
||||
}) {
|
||||
@@ -413,8 +410,8 @@ class InheritanceManager3 {
|
||||
/// new conflict description.
|
||||
List<Conflict> _findMostSpecificFromNamedCandidates(
|
||||
InterfaceElementImpl targetClass,
|
||||
Map<Name, ExecutableElement2OrMember> map,
|
||||
Map<Name, List<ExecutableElement2OrMember>> namedCandidates,
|
||||
Map<Name, InternalExecutableElement> map,
|
||||
Map<Name, List<InternalExecutableElement>> namedCandidates,
|
||||
) {
|
||||
var conflicts = <Conflict>[];
|
||||
|
||||
@@ -481,9 +478,9 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
Interface _getInterfaceClass(InterfaceElementImpl element) {
|
||||
var namedCandidates = <Name, List<ExecutableElement2OrMember>>{};
|
||||
var superImplemented = <Map<Name, ExecutableElement2OrMember>>[];
|
||||
var implemented = <Name, ExecutableElement2OrMember>{};
|
||||
var namedCandidates = <Name, List<InternalExecutableElement>>{};
|
||||
var superImplemented = <Map<Name, InternalExecutableElement>>[];
|
||||
var implemented = <Name, InternalExecutableElement>{};
|
||||
|
||||
InterfaceType? superType = element.supertype;
|
||||
|
||||
@@ -529,7 +526,7 @@ class InheritanceManager3 {
|
||||
// So, each mixin always replaces members in the interface.
|
||||
// And there are individual override conflicts for each mixin.
|
||||
var candidatesFromSuperAndMixin =
|
||||
<Name, List<ExecutableElement2OrMember>>{};
|
||||
<Name, List<InternalExecutableElement>>{};
|
||||
var mixinConflicts = <Conflict>[];
|
||||
for (var entry in mixinInterface.map.entries) {
|
||||
var name = entry.key;
|
||||
@@ -561,7 +558,7 @@ class InheritanceManager3 {
|
||||
|
||||
// Merge members from the superclass and the mixin interface.
|
||||
{
|
||||
var map = <Name, ExecutableElement2OrMember>{};
|
||||
var map = <Name, InternalExecutableElement>{};
|
||||
_findMostSpecificFromNamedCandidates(
|
||||
element,
|
||||
map,
|
||||
@@ -640,7 +637,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
}
|
||||
|
||||
implemented = implemented.map<Name, ExecutableElement2OrMember>((
|
||||
implemented = implemented.map<Name, InternalExecutableElement>((
|
||||
key,
|
||||
value,
|
||||
) {
|
||||
@@ -669,7 +666,7 @@ class InheritanceManager3 {
|
||||
/// member" portions, considering redeclaration and conflicts.
|
||||
Interface _getInterfaceExtensionType(ExtensionTypeElementImpl element) {
|
||||
// Add instance members implemented by the element itself.
|
||||
var declared = <Name, ExecutableElement2OrMember>{};
|
||||
var declared = <Name, InternalExecutableElement>{};
|
||||
_addImplemented(declared, element);
|
||||
|
||||
// Prepare precluded names.
|
||||
@@ -680,9 +677,9 @@ class InheritanceManager3 {
|
||||
var name = entry.key;
|
||||
precludedNames.add(name);
|
||||
switch (entry.value) {
|
||||
case MethodElement2OrMember():
|
||||
case InternalMethodElement():
|
||||
precludedSetters.add(name.forSetter);
|
||||
case SetterElement2OrMember():
|
||||
case InternalSetterElement():
|
||||
precludedMethods.add(name.forGetter);
|
||||
}
|
||||
}
|
||||
@@ -710,7 +707,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
}
|
||||
|
||||
var redeclared = <Name, List<ExecutableElement2OrMember>>{};
|
||||
var redeclared = <Name, List<InternalExecutableElement>>{};
|
||||
var conflicts = <Conflict>[];
|
||||
|
||||
// Add extension type members.
|
||||
@@ -751,7 +748,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
// The inherited member must be unique.
|
||||
ExecutableElement2OrMember? uniqueElement;
|
||||
InternalExecutableElement? uniqueElement;
|
||||
for (var candidate in notPrecluded) {
|
||||
if (uniqueElement == null) {
|
||||
uniqueElement = candidate;
|
||||
@@ -811,7 +808,7 @@ class InheritanceManager3 {
|
||||
implemented[name] = combinedSignature;
|
||||
}
|
||||
|
||||
var uniqueRedeclared = <Name, List<ExecutableElement2OrMember>>{};
|
||||
var uniqueRedeclared = <Name, List<InternalExecutableElement>>{};
|
||||
for (var entry in redeclared.entries) {
|
||||
var name = entry.key;
|
||||
var elements = entry.value;
|
||||
@@ -836,7 +833,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
Interface _getInterfaceMixin(MixinElementImpl element) {
|
||||
var superCandidates = <Name, List<ExecutableElement2OrMember>>{};
|
||||
var superCandidates = <Name, List<InternalExecutableElement>>{};
|
||||
for (var constraint in element.superclassConstraints) {
|
||||
var substitution = Substitution.fromInterfaceType(constraint);
|
||||
var interfaceObj = getInterface(constraint.element);
|
||||
@@ -849,7 +846,7 @@ class InheritanceManager3 {
|
||||
|
||||
// `mixin M on S1, S2 {}` can call using `super` any instance member
|
||||
// from its superclass constraints, whether it is abstract or concrete.
|
||||
var superInterface = <Name, ExecutableElement2OrMember>{};
|
||||
var superInterface = <Name, InternalExecutableElement>{};
|
||||
var superConflicts = _findMostSpecificFromNamedCandidates(
|
||||
element,
|
||||
superInterface,
|
||||
@@ -874,7 +871,7 @@ class InheritanceManager3 {
|
||||
interfaceCandidates,
|
||||
);
|
||||
|
||||
var implemented = <Name, ExecutableElement2OrMember>{};
|
||||
var implemented = <Name, InternalExecutableElement>{};
|
||||
_addImplemented(implemented, element);
|
||||
|
||||
return Interface._(
|
||||
@@ -895,11 +892,11 @@ class InheritanceManager3 {
|
||||
/// a copy of the [executable] with the corresponding parameters marked
|
||||
/// covariant. If there are no covariant parameters, or parameters to
|
||||
/// update are already covariant, return the [executable] itself.
|
||||
ExecutableElement2OrMember _inheritCovariance(
|
||||
InternalExecutableElement _inheritCovariance(
|
||||
InterfaceElementImpl class_,
|
||||
Map<Name, List<ExecutableElement2OrMember>> namedCandidates,
|
||||
Map<Name, List<InternalExecutableElement>> namedCandidates,
|
||||
Name name,
|
||||
ExecutableElement2OrMember executable,
|
||||
InternalExecutableElement executable,
|
||||
) {
|
||||
if (executable.enclosingElement == class_) {
|
||||
return executable;
|
||||
@@ -953,7 +950,7 @@ class InheritanceManager3 {
|
||||
return executable;
|
||||
}
|
||||
|
||||
if (executable is MethodElement2OrMember) {
|
||||
if (executable is InternalMethodElement) {
|
||||
var fragmentName = executable.name ?? '';
|
||||
|
||||
var elementReference = class_.reference!
|
||||
@@ -1027,10 +1024,10 @@ class InheritanceManager3 {
|
||||
|
||||
/// Given one or more [validOverrides], merge them into a single resulting
|
||||
/// signature. This signature always exists.
|
||||
ExecutableElement2OrMember _topMerge(
|
||||
InternalExecutableElement _topMerge(
|
||||
TypeSystemImpl typeSystem,
|
||||
InterfaceElementImpl targetClass,
|
||||
List<ExecutableElement2OrMember> validOverrides,
|
||||
List<InternalExecutableElement> validOverrides,
|
||||
) {
|
||||
var first = validOverrides[0];
|
||||
|
||||
@@ -1054,7 +1051,7 @@ class InheritanceManager3 {
|
||||
}
|
||||
}
|
||||
|
||||
if (first is MethodElement2OrMember) {
|
||||
if (first is InternalMethodElement) {
|
||||
var firstElement = first;
|
||||
var fragmentName = firstElement.firstFragment.name!;
|
||||
|
||||
@@ -1088,13 +1085,13 @@ class InheritanceManager3 {
|
||||
|
||||
return resultElement;
|
||||
} else {
|
||||
var firstElement = first as PropertyAccessorElement2OrMember;
|
||||
var firstElement = first as InternalPropertyAccessorElement;
|
||||
var fragmentName = first.name!;
|
||||
var field = FieldFragmentImpl(name: fragmentName, firstTokenOffset: null);
|
||||
|
||||
PropertyAccessorFragmentImpl resultFragment;
|
||||
PropertyAccessorElementImpl resultElement;
|
||||
if (firstElement is GetterElement2OrMember) {
|
||||
if (firstElement is InternalGetterElement) {
|
||||
var elementReference = targetClass.reference!
|
||||
.getChild('@getter')
|
||||
.getChild(fragmentName);
|
||||
@@ -1160,13 +1157,13 @@ class InheritanceManager3 {
|
||||
}
|
||||
}
|
||||
|
||||
static Map<Name, ExecutableElement2OrMember> _getTypeMembers(
|
||||
static Map<Name, InternalExecutableElement> _getTypeMembers(
|
||||
InterfaceElementImpl element,
|
||||
) {
|
||||
var declared = <Name, ExecutableElement2OrMember>{};
|
||||
var declared = <Name, InternalExecutableElement>{};
|
||||
var libraryUri = element.library.uri;
|
||||
|
||||
void addMember(ExecutableElement2OrMember member) {
|
||||
void addMember(InternalExecutableElement member) {
|
||||
if (!member.isStatic) {
|
||||
var lookupName = member.lookupName;
|
||||
if (lookupName != null) {
|
||||
@@ -1184,11 +1181,11 @@ class InheritanceManager3 {
|
||||
}
|
||||
|
||||
/// Returns executables that are valid overrides of [candidates].
|
||||
static List<ExecutableElement2OrMember> _getValidOverrides({
|
||||
static List<InternalExecutableElement> _getValidOverrides({
|
||||
required TypeSystemImpl typeSystem,
|
||||
required List<ExecutableElement2OrMember> candidates,
|
||||
required List<InternalExecutableElement> candidates,
|
||||
}) {
|
||||
var validOverrides = <ExecutableElement2OrMember>[];
|
||||
var validOverrides = <InternalExecutableElement>[];
|
||||
outer:
|
||||
for (var i = 0; i < candidates.length; i++) {
|
||||
var validOverride = candidates[i];
|
||||
@@ -1204,14 +1201,14 @@ class InheritanceManager3 {
|
||||
return validOverrides;
|
||||
}
|
||||
|
||||
static bool _isDeclaredInObject(ExecutableElement2OrMember element) {
|
||||
static bool _isDeclaredInObject(InternalExecutableElement element) {
|
||||
var enclosing = element.enclosingElement;
|
||||
return enclosing is ClassElement && enclosing.isDartCoreObject;
|
||||
}
|
||||
|
||||
static FunctionTypeImpl _topMergeSignatureTypes({
|
||||
required TypeSystemImpl typeSystem,
|
||||
required List<ExecutableElement2OrMember> validOverrides,
|
||||
required List<InternalExecutableElement> validOverrides,
|
||||
}) {
|
||||
return validOverrides
|
||||
.map((e) => typeSystem.normalizeFunctionType(e.type))
|
||||
@@ -1236,30 +1233,30 @@ class Interface {
|
||||
);
|
||||
|
||||
/// The map of names to their signature in the interface.
|
||||
final Map<Name, ExecutableElement2OrMember> map;
|
||||
final Map<Name, InternalExecutableElement> map;
|
||||
|
||||
/// The map of declared names to their signatures.
|
||||
final Map<Name, ExecutableElement2OrMember> declared;
|
||||
final Map<Name, InternalExecutableElement> declared;
|
||||
|
||||
/// The map of names to their concrete implementations.
|
||||
final Map<Name, ExecutableElement2OrMember> implemented;
|
||||
final Map<Name, InternalExecutableElement> implemented;
|
||||
|
||||
/// The set of names that are `noSuchMethod` forwarders in [implemented].
|
||||
final Set<Name> noSuchMethodForwarders;
|
||||
|
||||
/// The map of names to their signatures from the mixins, superclasses,
|
||||
/// or interfaces.
|
||||
final Map<Name, List<ExecutableElement2OrMember>> overridden;
|
||||
final Map<Name, List<InternalExecutableElement>> overridden;
|
||||
|
||||
/// The map of names to the signatures from superinterfaces that a member
|
||||
/// declaration in this extension type redeclares.
|
||||
final Map<Name, List<ExecutableElement2OrMember>> redeclared;
|
||||
final Map<Name, List<InternalExecutableElement>> redeclared;
|
||||
|
||||
/// Each item of this list maps names to their concrete implementations.
|
||||
/// The first item of the list is the nominal superclass, next the nominal
|
||||
/// superclass plus the first mixin, etc. So, for the class like
|
||||
/// `class C extends S with M1, M2`, we get `[S, S&M1, S&M1&M2]`.
|
||||
final List<Map<Name, ExecutableElement2OrMember>> superImplemented;
|
||||
final List<Map<Name, InternalExecutableElement>> superImplemented;
|
||||
|
||||
/// The list of conflicts between superinterfaces - the nominal superclass,
|
||||
/// mixins, and interfaces. Does not include conflicts with the declared
|
||||
@@ -1268,11 +1265,11 @@ class Interface {
|
||||
|
||||
/// Tracks signatures from superinterfaces that were combined.
|
||||
/// It is used to track dependencies in manifests.
|
||||
final Map<Name, List<ExecutableElement2OrMember>> combinedSignatures;
|
||||
final Map<Name, List<InternalExecutableElement>> combinedSignatures;
|
||||
|
||||
/// The map of names to the most specific signatures from the mixins,
|
||||
/// superclasses, or interfaces.
|
||||
Map<Name, ExecutableElement2OrMember>? inheritedMap;
|
||||
Map<Name, InternalExecutableElement>? inheritedMap;
|
||||
|
||||
Interface._({
|
||||
required this.map,
|
||||
@@ -1379,7 +1376,7 @@ class Name {
|
||||
|
||||
/// Failure because of not unique extension type member.
|
||||
class NotUniqueExtensionMemberConflict extends Conflict {
|
||||
final List<ExecutableElement2OrMember> candidates;
|
||||
final List<InternalExecutableElement> candidates;
|
||||
|
||||
NotUniqueExtensionMemberConflict({
|
||||
required super.name,
|
||||
@@ -1389,28 +1386,28 @@ class NotUniqueExtensionMemberConflict extends Conflict {
|
||||
|
||||
class _ExtensionTypeCandidates {
|
||||
final Name name;
|
||||
final List<MethodElement2OrMember> methods = [];
|
||||
final List<GetterElement2OrMember> getters = [];
|
||||
final List<SetterElement2OrMember> setters = [];
|
||||
final List<InternalMethodElement> methods = [];
|
||||
final List<InternalGetterElement> getters = [];
|
||||
final List<InternalSetterElement> setters = [];
|
||||
|
||||
_ExtensionTypeCandidates(this.name);
|
||||
|
||||
List<ExecutableElement2OrMember> get all {
|
||||
List<InternalExecutableElement> get all {
|
||||
return [...methods, ...getters, ...setters];
|
||||
}
|
||||
|
||||
void add(ExecutableElement2OrMember element) {
|
||||
void add(InternalExecutableElement element) {
|
||||
switch (element) {
|
||||
case MethodElement2OrMember():
|
||||
case InternalMethodElement():
|
||||
methods.add(element);
|
||||
case GetterElement2OrMember():
|
||||
case InternalGetterElement():
|
||||
getters.add(element);
|
||||
case SetterElement2OrMember():
|
||||
case InternalSetterElement():
|
||||
setters.add(element);
|
||||
}
|
||||
}
|
||||
|
||||
List<ExecutableElement2OrMember> notPrecluded({
|
||||
List<InternalExecutableElement> notPrecluded({
|
||||
required Set<Name> precludedNames,
|
||||
required Set<Name> precludedMethods,
|
||||
required Set<Name> precludedSetters,
|
||||
|
||||
@@ -653,7 +653,7 @@ class LeastUpperBoundHelper {
|
||||
var fParameters = f.formalParameters;
|
||||
var gParameters = g.formalParameters;
|
||||
|
||||
var parameters = <FormalParameterElementMixin>[];
|
||||
var parameters = <InternalFormalParameterElement>[];
|
||||
var fIndex = 0;
|
||||
var gIndex = 0;
|
||||
while (fIndex < fParameters.length && gIndex < gParameters.length) {
|
||||
@@ -801,8 +801,8 @@ class LeastUpperBoundHelper {
|
||||
}
|
||||
|
||||
TypeImpl _parameterType(
|
||||
FormalParameterElementMixin a,
|
||||
FormalParameterElementMixin b,
|
||||
InternalFormalParameterElement a,
|
||||
InternalFormalParameterElement b,
|
||||
) {
|
||||
return _typeSystem.greatestLowerBound(a.type, b.type);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import 'package:pub_semver/pub_semver.dart';
|
||||
/// A constructor element defined in a parameterized type where the values of
|
||||
/// the type parameters are known.
|
||||
class ConstructorMember extends ExecutableMember
|
||||
with ConstructorElementMixin2
|
||||
with InternalConstructorElement
|
||||
implements ConstructorElement {
|
||||
/// Initialize a newly created element to represent a constructor, based on
|
||||
/// the [declaration], and applied [substitution].
|
||||
@@ -40,13 +40,13 @@ class ConstructorMember extends ExecutableMember
|
||||
InterfaceElementImpl get enclosingElement2 => enclosingElement;
|
||||
|
||||
@override
|
||||
ConstructorFragment get firstFragment => baseElement.firstFragment;
|
||||
ConstructorFragmentImpl get firstFragment => baseElement.firstFragment;
|
||||
|
||||
@override
|
||||
List<ConstructorFragment> get fragments {
|
||||
List<ConstructorFragmentImpl> get fragments {
|
||||
return [
|
||||
for (
|
||||
ConstructorFragment? fragment = firstFragment;
|
||||
ConstructorFragmentImpl? fragment = firstFragment;
|
||||
fragment != null;
|
||||
fragment = fragment.nextFragment
|
||||
)
|
||||
@@ -74,14 +74,14 @@ class ConstructorMember extends ExecutableMember
|
||||
LibraryElementImpl get library2 => library;
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? get redirectedConstructor {
|
||||
InternalConstructorElement? get redirectedConstructor {
|
||||
var element = baseElement.redirectedConstructor;
|
||||
return _redirect(element);
|
||||
}
|
||||
|
||||
@Deprecated('Use redirectedConstructor instead')
|
||||
@override
|
||||
ConstructorElementMixin2? get redirectedConstructor2 {
|
||||
InternalConstructorElement? get redirectedConstructor2 {
|
||||
return redirectedConstructor;
|
||||
}
|
||||
|
||||
@@ -95,13 +95,13 @@ class ConstructorMember extends ExecutableMember
|
||||
Version? get sinceSdkVersion => baseElement.sinceSdkVersion;
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? get superConstructor {
|
||||
InternalConstructorElement? get superConstructor {
|
||||
return _redirect(baseElement.superConstructor);
|
||||
}
|
||||
|
||||
@Deprecated('Use superConstructor instead')
|
||||
@override
|
||||
ConstructorElementMixin2? get superConstructor2 {
|
||||
InternalConstructorElement? get superConstructor2 {
|
||||
return superConstructor;
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@ class ConstructorMember extends ExecutableMember
|
||||
builder.writeConstructorElement(this);
|
||||
}
|
||||
|
||||
ConstructorElementMixin2? _redirect(ConstructorElementMixin2? element) {
|
||||
InternalConstructorElement? _redirect(InternalConstructorElement? element) {
|
||||
switch (element) {
|
||||
case null:
|
||||
return null;
|
||||
@@ -145,7 +145,7 @@ class ConstructorMember extends ExecutableMember
|
||||
/// arguments from the [definingType], create a constructor member
|
||||
/// representing the given constructor. Return the member that was created, or
|
||||
/// the original constructor if no member was created.
|
||||
static ConstructorElementMixin2 from2(
|
||||
static InternalConstructorElement from2(
|
||||
ConstructorElementImpl element,
|
||||
InterfaceType definingType,
|
||||
) {
|
||||
@@ -162,7 +162,7 @@ class ConstructorMember extends ExecutableMember
|
||||
|
||||
/// An executable element defined in a parameterized type where the values of
|
||||
/// the type parameters are known.
|
||||
abstract class ExecutableMember extends Member with ExecutableElement2OrMember {
|
||||
abstract class ExecutableMember extends Member with InternalExecutableElement {
|
||||
@override
|
||||
final List<TypeParameterElementImpl> typeParameters;
|
||||
|
||||
@@ -206,8 +206,8 @@ abstract class ExecutableMember extends Member with ExecutableElement2OrMember {
|
||||
ExecutableFragment get firstFragment;
|
||||
|
||||
@override
|
||||
List<FormalParameterElementMixin> get formalParameters {
|
||||
return baseElement.formalParameters.map<FormalParameterElementMixin>((
|
||||
List<InternalFormalParameterElement> get formalParameters {
|
||||
return baseElement.formalParameters.map<InternalFormalParameterElement>((
|
||||
element,
|
||||
) {
|
||||
switch (element) {
|
||||
@@ -330,12 +330,12 @@ abstract class ExecutableMember extends Member with ExecutableElement2OrMember {
|
||||
return visitChildren(visitor);
|
||||
}
|
||||
|
||||
static ExecutableElement2OrMember from(
|
||||
static InternalExecutableElement from(
|
||||
ExecutableElement element,
|
||||
MapSubstitution substitution,
|
||||
) {
|
||||
if (identical(substitution, Substitution.empty)) {
|
||||
return element as ExecutableElement2OrMember;
|
||||
return element as InternalExecutableElement;
|
||||
}
|
||||
|
||||
ExecutableElementImpl baseElement;
|
||||
@@ -437,7 +437,7 @@ class FieldFormalParameterMember extends ParameterMember
|
||||
/// A field element defined in a parameterized type where the values of the type
|
||||
/// parameters are known.
|
||||
class FieldMember extends VariableMember
|
||||
with PropertyInducingElement2OrMember, FieldElement2OrMember {
|
||||
with InternalPropertyInducingElement, InternalFieldElement {
|
||||
/// Initialize a newly created element to represent a field, based on the
|
||||
/// [declaration], with applied [substitution].
|
||||
FieldMember({
|
||||
@@ -481,7 +481,7 @@ class FieldMember extends VariableMember
|
||||
}
|
||||
|
||||
@override
|
||||
GetterElement2OrMember? get getter {
|
||||
InternalGetterElement? get getter {
|
||||
var baseGetter = baseElement.getter;
|
||||
if (baseGetter == null) {
|
||||
return null;
|
||||
@@ -491,7 +491,7 @@ class FieldMember extends VariableMember
|
||||
|
||||
@Deprecated('Use getter instead')
|
||||
@override
|
||||
GetterElement2OrMember? get getter2 {
|
||||
InternalGetterElement? get getter2 {
|
||||
return getter;
|
||||
}
|
||||
|
||||
@@ -528,7 +528,7 @@ class FieldMember extends VariableMember
|
||||
MetadataImpl get metadata2 => metadata;
|
||||
|
||||
@override
|
||||
SetterElement2OrMember? get setter {
|
||||
InternalSetterElement? get setter {
|
||||
var baseSetter = baseElement.setter;
|
||||
if (baseSetter == null) {
|
||||
return null;
|
||||
@@ -538,7 +538,7 @@ class FieldMember extends VariableMember
|
||||
|
||||
@Deprecated('Use setter instead')
|
||||
@override
|
||||
SetterElement2OrMember? get setter2 {
|
||||
InternalSetterElement? get setter2 {
|
||||
return setter;
|
||||
}
|
||||
|
||||
@@ -563,7 +563,7 @@ class FieldMember extends VariableMember
|
||||
visitChildren(visitor);
|
||||
}
|
||||
|
||||
static FieldElement2OrMember from(
|
||||
static InternalFieldElement from(
|
||||
FieldElementImpl element,
|
||||
MapSubstitution substitution,
|
||||
) {
|
||||
@@ -576,7 +576,7 @@ class FieldMember extends VariableMember
|
||||
|
||||
/// A getter element defined in a parameterized type where the values of the
|
||||
/// type parameters are known.
|
||||
class GetterMember extends PropertyAccessorMember with GetterElement2OrMember {
|
||||
class GetterMember extends PropertyAccessorMember with InternalGetterElement {
|
||||
GetterMember._({
|
||||
required super.baseElement,
|
||||
required super.substitution,
|
||||
@@ -587,7 +587,7 @@ class GetterMember extends PropertyAccessorMember with GetterElement2OrMember {
|
||||
GetterElementImpl get baseElement => super.baseElement as GetterElementImpl;
|
||||
|
||||
@override
|
||||
SetterElement2OrMember? get correspondingSetter {
|
||||
InternalSetterElement? get correspondingSetter {
|
||||
var baseSetter = baseElement.variable.setter;
|
||||
if (baseSetter == null) {
|
||||
return null;
|
||||
@@ -597,7 +597,7 @@ class GetterMember extends PropertyAccessorMember with GetterElement2OrMember {
|
||||
|
||||
@Deprecated('Use correspondingSetter instead')
|
||||
@override
|
||||
SetterElement2OrMember? get correspondingSetter2 {
|
||||
InternalSetterElement? get correspondingSetter2 {
|
||||
return correspondingSetter;
|
||||
}
|
||||
|
||||
@@ -634,17 +634,17 @@ class GetterMember extends PropertyAccessorMember with GetterElement2OrMember {
|
||||
@override
|
||||
T? accept2<T>(ElementVisitor2<T> visitor) => accept(visitor);
|
||||
|
||||
static GetterElement2OrMember forSubstitution(
|
||||
GetterElement2OrMember element,
|
||||
static InternalGetterElement forSubstitution(
|
||||
InternalGetterElement element,
|
||||
MapSubstitution substitution,
|
||||
) {
|
||||
// TODO(scheglov): avoid type cast
|
||||
return ExecutableMember.from(element, substitution)
|
||||
as GetterElement2OrMember;
|
||||
as InternalGetterElement;
|
||||
}
|
||||
|
||||
static GetterElement2OrMember forTargetType(
|
||||
GetterElement2OrMember element,
|
||||
static InternalGetterElement forTargetType(
|
||||
InternalGetterElement element,
|
||||
InterfaceType targetType,
|
||||
) {
|
||||
var substitution = Substitution.fromInterfaceType(targetType);
|
||||
@@ -760,7 +760,7 @@ abstract class Member implements Element {
|
||||
|
||||
/// A method element defined in a parameterized type where the values of the
|
||||
/// type parameters are known.
|
||||
class MethodMember extends ExecutableMember with MethodElement2OrMember {
|
||||
class MethodMember extends ExecutableMember with InternalMethodElement {
|
||||
factory MethodMember({
|
||||
required MethodElementImpl baseElement,
|
||||
required MapSubstitution substitution,
|
||||
@@ -822,20 +822,21 @@ class MethodMember extends ExecutableMember with MethodElement2OrMember {
|
||||
@override
|
||||
T? accept2<T>(ElementVisitor2<T> visitor) => accept(visitor);
|
||||
|
||||
static MethodElement2OrMember forTargetType(
|
||||
MethodElement2OrMember element,
|
||||
static InternalMethodElement forTargetType(
|
||||
InternalMethodElement element,
|
||||
InterfaceType targetType,
|
||||
) {
|
||||
var substitution = Substitution.fromInterfaceType(targetType);
|
||||
// TODO(scheglov): avoid type cast
|
||||
return ExecutableMember.from(element, substitution)
|
||||
as MethodElement2OrMember;
|
||||
as InternalMethodElement;
|
||||
}
|
||||
}
|
||||
|
||||
/// A parameter element defined in a parameterized type where the values of the
|
||||
/// type parameters are known.
|
||||
class ParameterMember extends VariableMember with FormalParameterElementMixin {
|
||||
class ParameterMember extends VariableMember
|
||||
with InternalFormalParameterElement {
|
||||
@override
|
||||
final List<TypeParameterElementImpl> typeParameters;
|
||||
|
||||
@@ -1003,8 +1004,8 @@ class ParameterMember extends VariableMember with FormalParameterElementMixin {
|
||||
visitChildren(visitor);
|
||||
}
|
||||
|
||||
static FormalParameterElementMixin from(
|
||||
FormalParameterElementMixin element,
|
||||
static InternalFormalParameterElement from(
|
||||
InternalFormalParameterElement element,
|
||||
MapSubstitution substitution,
|
||||
) {
|
||||
FormalParameterElementImpl baseElement;
|
||||
@@ -1033,7 +1034,7 @@ class ParameterMember extends VariableMember with FormalParameterElementMixin {
|
||||
/// A property accessor element defined in a parameterized type where the values
|
||||
/// of the type parameters are known.
|
||||
abstract class PropertyAccessorMember extends ExecutableMember
|
||||
with PropertyAccessorElement2OrMember {
|
||||
with InternalPropertyAccessorElement {
|
||||
factory PropertyAccessorMember({
|
||||
required PropertyAccessorElementImpl baseElement,
|
||||
required MapSubstitution substitution,
|
||||
@@ -1079,7 +1080,7 @@ abstract class PropertyAccessorMember extends ExecutableMember
|
||||
Version? get sinceSdkVersion => baseElement.sinceSdkVersion;
|
||||
|
||||
@override
|
||||
PropertyInducingElement2OrMember get variable {
|
||||
InternalPropertyInducingElement get variable {
|
||||
var variable = baseElement.variable;
|
||||
switch (variable) {
|
||||
case FieldElementImpl():
|
||||
@@ -1091,7 +1092,7 @@ abstract class PropertyAccessorMember extends ExecutableMember
|
||||
|
||||
@Deprecated('Use variable instead')
|
||||
@override
|
||||
PropertyInducingElement2OrMember? get variable3 {
|
||||
InternalPropertyInducingElement? get variable3 {
|
||||
return variable;
|
||||
}
|
||||
|
||||
@@ -1106,7 +1107,7 @@ abstract class PropertyAccessorMember extends ExecutableMember
|
||||
|
||||
/// A setter element defined in a parameterized type where the values of the
|
||||
/// type parameters are known.
|
||||
class SetterMember extends PropertyAccessorMember with SetterElement2OrMember {
|
||||
class SetterMember extends PropertyAccessorMember with InternalSetterElement {
|
||||
SetterMember._({
|
||||
required super.baseElement,
|
||||
required super.substitution,
|
||||
@@ -1117,7 +1118,7 @@ class SetterMember extends PropertyAccessorMember with SetterElement2OrMember {
|
||||
SetterElementImpl get baseElement => super.baseElement as SetterElementImpl;
|
||||
|
||||
@override
|
||||
GetterElement2OrMember? get correspondingGetter {
|
||||
InternalGetterElement? get correspondingGetter {
|
||||
var baseGetter = baseElement.variable.getter;
|
||||
if (baseGetter == null) {
|
||||
return null;
|
||||
@@ -1127,7 +1128,7 @@ class SetterMember extends PropertyAccessorMember with SetterElement2OrMember {
|
||||
|
||||
@Deprecated('Use correspondingGetter instead')
|
||||
@override
|
||||
GetterElement2OrMember? get correspondingGetter2 {
|
||||
InternalGetterElement? get correspondingGetter2 {
|
||||
return correspondingGetter;
|
||||
}
|
||||
|
||||
@@ -1164,17 +1165,17 @@ class SetterMember extends PropertyAccessorMember with SetterElement2OrMember {
|
||||
@override
|
||||
T? accept2<T>(ElementVisitor2<T> visitor) => accept(visitor);
|
||||
|
||||
static SetterElement2OrMember forSubstitution(
|
||||
SetterElement2OrMember element,
|
||||
static InternalSetterElement forSubstitution(
|
||||
InternalSetterElement element,
|
||||
MapSubstitution substitution,
|
||||
) {
|
||||
// TODO(scheglov): avoid type cast
|
||||
return ExecutableMember.from(element, substitution)
|
||||
as SetterElement2OrMember;
|
||||
as InternalSetterElement;
|
||||
}
|
||||
|
||||
static SetterElement2OrMember forTargetType(
|
||||
SetterElement2OrMember element,
|
||||
static InternalSetterElement forTargetType(
|
||||
InternalSetterElement element,
|
||||
InterfaceType targetType,
|
||||
) {
|
||||
var substitution = Substitution.fromInterfaceType(targetType);
|
||||
@@ -1221,7 +1222,7 @@ class SuperFormalParameterMember extends ParameterMember
|
||||
bool get hasDefaultValue => baseElement.hasDefaultValue;
|
||||
|
||||
@override
|
||||
FormalParameterElementMixin? get superConstructorParameter {
|
||||
InternalFormalParameterElement? get superConstructorParameter {
|
||||
var superConstructorParameter = baseElement.superConstructorParameter;
|
||||
if (superConstructorParameter == null) {
|
||||
return null;
|
||||
@@ -1232,14 +1233,14 @@ class SuperFormalParameterMember extends ParameterMember
|
||||
|
||||
@Deprecated('Use superConstructorParameter instead')
|
||||
@override
|
||||
FormalParameterElementMixin? get superConstructorParameter2 {
|
||||
InternalFormalParameterElement? get superConstructorParameter2 {
|
||||
return superConstructorParameter;
|
||||
}
|
||||
}
|
||||
|
||||
/// A variable element defined in a parameterized type where the values of the
|
||||
/// type parameters are known.
|
||||
abstract class VariableMember extends Member with VariableElement2OrMember {
|
||||
abstract class VariableMember extends Member with InternalVariableElement {
|
||||
TypeImpl? _type;
|
||||
|
||||
/// Initialize a newly created element to represent a variable, based on the
|
||||
|
||||
@@ -33,7 +33,7 @@ class ReplacementVisitor
|
||||
required FunctionTypeImpl type,
|
||||
required InstantiatedTypeAliasElementImpl? newAlias,
|
||||
required List<TypeParameterElementImpl>? newTypeParameters,
|
||||
required List<FormalParameterElementMixin>? newParameters,
|
||||
required List<InternalFormalParameterElement>? newParameters,
|
||||
required TypeImpl? newReturnType,
|
||||
required NullabilitySuffix? newNullability,
|
||||
}) {
|
||||
@@ -241,7 +241,7 @@ class ReplacementVisitor
|
||||
|
||||
changeVariance();
|
||||
|
||||
List<FormalParameterElementMixin>? newParameters;
|
||||
List<InternalFormalParameterElement>? newParameters;
|
||||
for (var i = 0; i < node.formalParameters.length; i++) {
|
||||
var parameter = node.formalParameters[i];
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
///
|
||||
/// The parameter types are not necessarily in the same order as they appear
|
||||
/// in the declaration of the function.
|
||||
final List<FormalParameterElementMixin> parameters;
|
||||
final List<InternalFormalParameterElement> parameters;
|
||||
|
||||
@override
|
||||
final NullabilitySuffix nullabilitySuffix;
|
||||
@@ -121,11 +121,11 @@ class FunctionTypeImpl extends TypeImpl
|
||||
/// implementation, and was exposed by accident (see
|
||||
/// https://github.com/dart-lang/sdk/issues/59763). Please use [parameters]
|
||||
/// instead.
|
||||
final List<FormalParameterElementMixin> sortedNamedParameters;
|
||||
final List<InternalFormalParameterElement> sortedNamedParameters;
|
||||
|
||||
factory FunctionTypeImpl({
|
||||
required List<TypeParameterElementImpl> typeParameters,
|
||||
required List<FormalParameterElementMixin> parameters,
|
||||
required List<InternalFormalParameterElement> parameters,
|
||||
required TypeImpl returnType,
|
||||
required NullabilitySuffix nullabilitySuffix,
|
||||
InstantiatedTypeAliasElementImpl? alias,
|
||||
@@ -133,7 +133,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
int? firstNamedParameterIndex;
|
||||
var requiredPositionalParameterCount = 0;
|
||||
var positionalParameterTypes = <TypeImpl>[];
|
||||
List<FormalParameterElementMixin> sortedNamedParameters;
|
||||
List<InternalFormalParameterElement> sortedNamedParameters;
|
||||
|
||||
// Check if already sorted.
|
||||
var namedParametersAlreadySorted = true;
|
||||
@@ -187,7 +187,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
|
||||
factory FunctionTypeImpl.v2({
|
||||
required List<TypeParameterElementImpl> typeParameters,
|
||||
required List<FormalParameterElementMixin> formalParameters,
|
||||
required List<InternalFormalParameterElement> formalParameters,
|
||||
required TypeImpl returnType,
|
||||
required NullabilitySuffix nullabilitySuffix,
|
||||
InstantiatedTypeAliasElementImpl? alias,
|
||||
@@ -220,7 +220,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
Null get element3 => null;
|
||||
|
||||
@override
|
||||
List<FormalParameterElementMixin> get formalParameters {
|
||||
List<InternalFormalParameterElement> get formalParameters {
|
||||
return parameters;
|
||||
}
|
||||
|
||||
@@ -249,7 +249,7 @@ class FunctionTypeImpl extends TypeImpl
|
||||
TypeImpl get returnTypeShared => returnType;
|
||||
|
||||
@override
|
||||
List<FormalParameterElementMixin> get sortedNamedParametersShared =>
|
||||
List<InternalFormalParameterElement> get sortedNamedParametersShared =>
|
||||
sortedNamedParameters;
|
||||
|
||||
@override
|
||||
@@ -561,17 +561,17 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
@override
|
||||
final NullabilitySuffix nullabilitySuffix;
|
||||
|
||||
/// Cached [ConstructorElementMixin2]s - members or raw elements.
|
||||
List<ConstructorElementMixin2>? _constructors;
|
||||
/// Cached [InternalConstructorElement]s - members or raw elements.
|
||||
List<InternalConstructorElement>? _constructors;
|
||||
|
||||
/// Cached [GetterElement2OrMember]s - members or raw elements.
|
||||
List<GetterElement2OrMember>? _getters;
|
||||
/// Cached [InternalGetterElement]s - members or raw elements.
|
||||
List<InternalGetterElement>? _getters;
|
||||
|
||||
/// Cached [SetterElement2OrMember]s - members or raw elements.
|
||||
List<SetterElement2OrMember>? _setters;
|
||||
/// Cached [InternalSetterElement]s - members or raw elements.
|
||||
List<InternalSetterElement>? _setters;
|
||||
|
||||
/// Cached [MethodElement2OrMember]s - members or raw elements.
|
||||
List<MethodElement2OrMember>? _methods;
|
||||
/// Cached [InternalMethodElement]s - members or raw elements.
|
||||
List<InternalMethodElement>? _methods;
|
||||
|
||||
factory InterfaceTypeImpl({
|
||||
required InterfaceElementImpl element,
|
||||
@@ -636,7 +636,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
@override
|
||||
List<ConstructorElementMixin2> get constructors {
|
||||
List<InternalConstructorElement> get constructors {
|
||||
return _constructors ??=
|
||||
element.constructors.map((constructor) {
|
||||
return ConstructorMember.from2(constructor, this);
|
||||
@@ -645,14 +645,14 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
|
||||
@Deprecated('Use constructors instead')
|
||||
@override
|
||||
List<ConstructorElementMixin2> get constructors2 => constructors;
|
||||
List<InternalConstructorElement> get constructors2 => constructors;
|
||||
|
||||
@Deprecated('Use element instead')
|
||||
@override
|
||||
InterfaceElementImpl get element3 => element;
|
||||
|
||||
@override
|
||||
List<GetterElement2OrMember> get getters {
|
||||
List<InternalGetterElement> get getters {
|
||||
return _getters ??=
|
||||
element.getters.map((e) {
|
||||
return GetterMember.forTargetType(e, this);
|
||||
@@ -756,7 +756,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
@override
|
||||
List<MethodElement2OrMember> get methods {
|
||||
List<InternalMethodElement> get methods {
|
||||
return _methods ??=
|
||||
element.methods.map((e) {
|
||||
return MethodMember.forTargetType(e, this);
|
||||
@@ -765,7 +765,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
|
||||
@Deprecated('Use methods instead')
|
||||
@override
|
||||
List<MethodElement2OrMember> get methods2 => methods;
|
||||
List<InternalMethodElement> get methods2 => methods;
|
||||
|
||||
@override
|
||||
List<InterfaceTypeImpl> get mixins {
|
||||
@@ -787,7 +787,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
@override
|
||||
List<SetterElement2OrMember> get setters {
|
||||
List<InternalSetterElement> get setters {
|
||||
return _setters ??=
|
||||
element.setters.map((e) {
|
||||
return SetterMember.forTargetType(e, this);
|
||||
@@ -878,43 +878,43 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
@override
|
||||
GetterElement2OrMember? getGetter(String getterName) {
|
||||
InternalGetterElement? getGetter(String getterName) {
|
||||
var element = this.element.getGetter(getterName);
|
||||
return element != null ? GetterMember.forTargetType(element, this) : null;
|
||||
}
|
||||
|
||||
@Deprecated('Use getGetter instead')
|
||||
@override
|
||||
GetterElement2OrMember? getGetter2(String getterName) {
|
||||
InternalGetterElement? getGetter2(String getterName) {
|
||||
return getGetter(getterName);
|
||||
}
|
||||
|
||||
@override
|
||||
MethodElement2OrMember? getMethod(String methodName) {
|
||||
InternalMethodElement? getMethod(String methodName) {
|
||||
var element = this.element.getMethod(methodName);
|
||||
return element != null ? MethodMember.forTargetType(element, this) : null;
|
||||
}
|
||||
|
||||
@Deprecated('Use getMethod instead')
|
||||
@override
|
||||
MethodElement2OrMember? getMethod2(String methodName) {
|
||||
InternalMethodElement? getMethod2(String methodName) {
|
||||
return getMethod(methodName);
|
||||
}
|
||||
|
||||
@override
|
||||
SetterElement2OrMember? getSetter(String setterName) {
|
||||
InternalSetterElement? getSetter(String setterName) {
|
||||
var element = this.element.getSetter(setterName);
|
||||
return element != null ? SetterMember.forTargetType(element, this) : null;
|
||||
}
|
||||
|
||||
@Deprecated('Use getSetter instead')
|
||||
@override
|
||||
SetterElement2OrMember? getSetter2(String setterName) {
|
||||
InternalSetterElement? getSetter2(String setterName) {
|
||||
return getSetter(setterName);
|
||||
}
|
||||
|
||||
@override
|
||||
ConstructorElementMixin2? lookUpConstructor(
|
||||
InternalConstructorElement? lookUpConstructor(
|
||||
String? constructorName,
|
||||
LibraryElement library,
|
||||
) {
|
||||
@@ -936,7 +936,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
|
||||
@Deprecated('Use lookUpConstructor instead')
|
||||
@override
|
||||
ConstructorElementMixin2? lookUpConstructor2(
|
||||
InternalConstructorElement? lookUpConstructor2(
|
||||
String? constructorName,
|
||||
LibraryElement library,
|
||||
) {
|
||||
@@ -944,7 +944,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
@override
|
||||
GetterElement2OrMember? lookUpGetter(
|
||||
InternalGetterElement? lookUpGetter(
|
||||
String name,
|
||||
LibraryElement library, {
|
||||
bool concrete = false,
|
||||
@@ -957,12 +957,12 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
if (inherited) {
|
||||
if (concrete) {
|
||||
var result = inheritance.getMember3(this, nameObj, forSuper: inherited);
|
||||
if (result is GetterElement2OrMember) {
|
||||
if (result is InternalGetterElement) {
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
var rawElement = inheritance.getInherited(element, nameObj);
|
||||
if (rawElement is GetterElement2OrMember) {
|
||||
if (rawElement is InternalGetterElement) {
|
||||
return GetterMember.forTargetType(rawElement, this);
|
||||
}
|
||||
}
|
||||
@@ -970,7 +970,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
var result = inheritance.getMember3(this, nameObj, concrete: concrete);
|
||||
if (result is GetterElement2OrMember) {
|
||||
if (result is InternalGetterElement) {
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -983,7 +983,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
|
||||
@Deprecated('Use lookUpGetter instead')
|
||||
@override
|
||||
GetterElement2OrMember? lookUpGetter3(
|
||||
InternalGetterElement? lookUpGetter3(
|
||||
String name,
|
||||
LibraryElement library, {
|
||||
bool concrete = false,
|
||||
@@ -1000,7 +1000,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
@override
|
||||
MethodElement2OrMember? lookUpMethod(
|
||||
InternalMethodElement? lookUpMethod(
|
||||
String name,
|
||||
LibraryElement library, {
|
||||
bool concrete = false,
|
||||
@@ -1013,12 +1013,12 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
if (inherited) {
|
||||
if (concrete) {
|
||||
var result = inheritance.getMember3(this, nameObj, forSuper: inherited);
|
||||
if (result is MethodElement2OrMember) {
|
||||
if (result is InternalMethodElement) {
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
var rawElement = inheritance.getInherited(element, nameObj);
|
||||
if (rawElement is MethodElement2OrMember) {
|
||||
if (rawElement is InternalMethodElement) {
|
||||
return MethodMember.forTargetType(rawElement, this);
|
||||
}
|
||||
}
|
||||
@@ -1026,7 +1026,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
var result = inheritance.getMember3(this, nameObj, concrete: concrete);
|
||||
if (result is MethodElement2OrMember) {
|
||||
if (result is InternalMethodElement) {
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1039,7 +1039,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
|
||||
@Deprecated('Use lookUpMethod instead')
|
||||
@override
|
||||
MethodElement2OrMember? lookUpMethod3(
|
||||
InternalMethodElement? lookUpMethod3(
|
||||
String name,
|
||||
LibraryElement library, {
|
||||
bool concrete = false,
|
||||
@@ -1056,7 +1056,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
@override
|
||||
SetterElement2OrMember? lookUpSetter(
|
||||
InternalSetterElement? lookUpSetter(
|
||||
String name,
|
||||
LibraryElement library, {
|
||||
bool concrete = false,
|
||||
@@ -1069,12 +1069,12 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
if (inherited) {
|
||||
if (concrete) {
|
||||
var result = inheritance.getMember3(this, nameObj, forSuper: inherited);
|
||||
if (result is SetterElement2OrMember) {
|
||||
if (result is InternalSetterElement) {
|
||||
return result;
|
||||
}
|
||||
} else {
|
||||
var rawElement = inheritance.getInherited(element, nameObj);
|
||||
if (rawElement is SetterElement2OrMember) {
|
||||
if (rawElement is InternalSetterElement) {
|
||||
return SetterMember.forTargetType(rawElement, this);
|
||||
}
|
||||
}
|
||||
@@ -1082,7 +1082,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
}
|
||||
|
||||
var result = inheritance.getMember3(this, nameObj, concrete: concrete);
|
||||
if (result is SetterElement2OrMember) {
|
||||
if (result is InternalSetterElement) {
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1095,7 +1095,7 @@ class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
|
||||
|
||||
@Deprecated('Use lookUpSetter instead')
|
||||
@override
|
||||
SetterElement2OrMember? lookUpSetter3(
|
||||
InternalSetterElement? lookUpSetter3(
|
||||
String name,
|
||||
LibraryElement library, {
|
||||
bool concrete = false,
|
||||
@@ -1566,7 +1566,8 @@ abstract class TypeImpl implements DartType, SharedType {
|
||||
|
||||
@Deprecated('Use asInstanceOf instead')
|
||||
@override
|
||||
InterfaceTypeImpl? asInstanceOf2(InterfaceElement targetElement) => asInstanceOf(targetElement);
|
||||
InterfaceTypeImpl? asInstanceOf2(InterfaceElement targetElement) =>
|
||||
asInstanceOf(targetElement);
|
||||
|
||||
@override
|
||||
TypeImpl asQuestionType(bool isQuestionType) => withNullability(
|
||||
|
||||
@@ -80,8 +80,8 @@ FunctionTypeImpl replaceTypeParameters(
|
||||
typeArguments,
|
||||
);
|
||||
|
||||
FormalParameterElementMixin transformParameter(
|
||||
FormalParameterElementMixin p,
|
||||
InternalFormalParameterElement transformParameter(
|
||||
InternalFormalParameterElement p,
|
||||
) {
|
||||
var type = substitution.substituteType(p.type);
|
||||
return p.copyWith(type: type);
|
||||
|
||||
@@ -40,7 +40,7 @@ class AnnotationResolver {
|
||||
ArgumentListImpl argumentList,
|
||||
List<WhyNotPromotedGetter> whyNotPromotedArguments,
|
||||
) {
|
||||
ConstructorElementMixin2? constructorElement;
|
||||
InternalConstructorElement? constructorElement;
|
||||
if (constructorName != null) {
|
||||
constructorElement = classElement.getNamedConstructor(
|
||||
constructorName.name,
|
||||
@@ -108,7 +108,7 @@ class AnnotationResolver {
|
||||
String typeDisplayName,
|
||||
SimpleIdentifierImpl? constructorName,
|
||||
List<TypeParameterElementImpl> typeParameters,
|
||||
ConstructorElementMixin2? constructorElement,
|
||||
InternalConstructorElement? constructorElement,
|
||||
ArgumentListImpl argumentList,
|
||||
InterfaceType Function(List<TypeImpl> typeArguments) instantiateElement,
|
||||
List<WhyNotPromotedGetter> whyNotPromotedArguments,
|
||||
|
||||
@@ -31,7 +31,7 @@ class InstantiatedExtensionWithMember {
|
||||
|
||||
ExtensionElement get extension => candidate.extension;
|
||||
|
||||
ExecutableElement2OrMember? get getter {
|
||||
InternalExecutableElement? get getter {
|
||||
var getter = candidate.getter;
|
||||
if (getter == null) {
|
||||
return null;
|
||||
@@ -39,7 +39,7 @@ class InstantiatedExtensionWithMember {
|
||||
return ExecutableMember.from(getter, substitution);
|
||||
}
|
||||
|
||||
ExecutableElement2OrMember? get setter {
|
||||
InternalExecutableElement? get setter {
|
||||
var setter = candidate.setter;
|
||||
if (setter == null) {
|
||||
return null;
|
||||
|
||||
@@ -270,7 +270,7 @@ class AssignmentExpressionResolver {
|
||||
propertyErrorEntity: operator,
|
||||
nameErrorEntity: operator,
|
||||
);
|
||||
node.element = result.getter2 as MethodElement2OrMember?;
|
||||
node.element = result.getter2 as InternalMethodElement?;
|
||||
if (result.needsGetterError) {
|
||||
_diagnosticReporter.atToken(
|
||||
operator,
|
||||
|
||||
@@ -496,10 +496,10 @@ enum ExtensionResolutionError implements ExtensionResolutionResult {
|
||||
ambiguous;
|
||||
|
||||
@override
|
||||
ExecutableElement2OrMember? get getter2 => null;
|
||||
InternalExecutableElement? get getter2 => null;
|
||||
|
||||
@override
|
||||
ExecutableElement2OrMember? get setter2 => null;
|
||||
InternalExecutableElement? get setter2 => null;
|
||||
}
|
||||
|
||||
/// The result of attempting to resolve an identifier to elements, where the
|
||||
|
||||
@@ -1290,7 +1290,7 @@ class _LocalVariableTypeProvider implements LocalVariableTypeProvider {
|
||||
|
||||
@override
|
||||
TypeImpl getType(SimpleIdentifierImpl node, {required bool isRead}) {
|
||||
var variable = node.element as VariableElement2OrMember;
|
||||
var variable = node.element as InternalVariableElement;
|
||||
if (variable is PromotableElementImpl) {
|
||||
var promotedType =
|
||||
isRead
|
||||
|
||||
@@ -155,7 +155,7 @@ class ForResolver {
|
||||
identifier,
|
||||
isRead: false,
|
||||
);
|
||||
} else if (identifierElement is SetterElement2OrMember) {
|
||||
} else if (identifierElement is InternalSetterElement) {
|
||||
var parameters = identifierElement.formalParameters;
|
||||
if (parameters.isNotEmpty) {
|
||||
valueType = parameters[0].type;
|
||||
|
||||
@@ -538,9 +538,9 @@ class FunctionReferenceResolver {
|
||||
targetType = target.typeOrThrow;
|
||||
} else if (target is SimpleIdentifierImpl) {
|
||||
var targetElement = target.scopeLookupResult!.getter;
|
||||
if (targetElement is VariableElement2OrMember) {
|
||||
if (targetElement is InternalVariableElement) {
|
||||
targetType = targetElement.type;
|
||||
} else if (targetElement is PropertyAccessorElement2OrMember) {
|
||||
} else if (targetElement is InternalPropertyAccessorElement) {
|
||||
targetType = targetElement.variable.type;
|
||||
} else {
|
||||
// TODO(srawlins): Can we get here?
|
||||
@@ -733,7 +733,7 @@ class FunctionReferenceResolver {
|
||||
// Continue to assign types.
|
||||
}
|
||||
|
||||
if (method is PropertyAccessorElement2OrMember) {
|
||||
if (method is InternalPropertyAccessorElement) {
|
||||
function.element = method;
|
||||
function.setPseudoExpressionStaticType(method.returnType);
|
||||
_resolve(node: node, rawType: method.variable.type);
|
||||
|
||||
@@ -33,7 +33,7 @@ class ConstructorElementToInfer {
|
||||
final List<TypeParameterElementImpl> typeParameters;
|
||||
|
||||
/// The element, might be [ConstructorMember].
|
||||
final ConstructorElementMixin2 element;
|
||||
final InternalConstructorElement element;
|
||||
|
||||
ConstructorElementToInfer(this.typeParameters, this.element);
|
||||
|
||||
@@ -82,7 +82,7 @@ class InvocationInferenceHelper {
|
||||
required LibraryElementImpl definingLibrary,
|
||||
}) {
|
||||
List<TypeParameterElementImpl> typeParameters;
|
||||
ConstructorElementMixin2? rawElement;
|
||||
InternalConstructorElement? rawElement;
|
||||
|
||||
if (typeElement is InterfaceElementImpl) {
|
||||
typeParameters = typeElement.typeParameters;
|
||||
@@ -92,8 +92,7 @@ class InvocationInferenceHelper {
|
||||
} else {
|
||||
var name = constructorIdentifier.name;
|
||||
rawElement = typeElement.getNamedConstructor(name);
|
||||
if (rawElement != null &&
|
||||
!rawElement.isAccessibleIn(definingLibrary)) {
|
||||
if (rawElement != null && !rawElement.isAccessibleIn(definingLibrary)) {
|
||||
rawElement = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ Set<Object> _computeExplicitlyTypedParameterSet(
|
||||
/// Given an iterable of parameters, computes a map whose keys are either the
|
||||
/// parameter name (for named parameters) or the zero-based integer index (for
|
||||
/// unnamed parameters), and whose values are the parameters themselves.
|
||||
Map<Object, FormalParameterElementMixin> _computeParameterMap(
|
||||
Iterable<FormalParameterElementMixin> parameters,
|
||||
Map<Object, InternalFormalParameterElement> _computeParameterMap(
|
||||
Iterable<InternalFormalParameterElement> parameters,
|
||||
) {
|
||||
int unnamedParameterIndex = 0;
|
||||
return {
|
||||
@@ -96,7 +96,7 @@ class AnnotationInferrer extends FullInvocationInferrer<AnnotationImpl> {
|
||||
FunctionType? invokeType,
|
||||
) {
|
||||
if (invokeType != null) {
|
||||
var elementOrMember = node.element as ConstructorElementMixin2;
|
||||
var elementOrMember = node.element as InternalConstructorElement;
|
||||
var constructorElement = ConstructorMember.from2(
|
||||
elementOrMember.baseElement,
|
||||
invokeType.returnType as InterfaceType,
|
||||
@@ -369,7 +369,7 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
|
||||
/// parameters that were *not* deferred.
|
||||
List<_ParamInfo> _computeUndeferredParamInfo(
|
||||
FunctionType? rawType,
|
||||
Map<Object, FormalParameterElementMixin> parameterMap,
|
||||
Map<Object, InternalFormalParameterElement> parameterMap,
|
||||
List<_DeferredParamInfo> deferredFunctionLiterals,
|
||||
) {
|
||||
if (rawType == null) return const [];
|
||||
@@ -626,7 +626,7 @@ class InvocationInferrer<Node extends AstNodeImpl> {
|
||||
/// be deferred due to the `inference-update-1` feature, a list of them is
|
||||
/// returned.
|
||||
List<_DeferredParamInfo>? _visitArguments({
|
||||
required Map<Object, FormalParameterElementMixin> parameterMap,
|
||||
required Map<Object, InternalFormalParameterElement> parameterMap,
|
||||
List<_IdenticalArgumentInfo?>? identicalArgumentInfo,
|
||||
Substitution? substitution,
|
||||
GenericInferrer? inferrer,
|
||||
@@ -640,7 +640,7 @@ class InvocationInferrer<Node extends AstNodeImpl> {
|
||||
for (int i = 0; i < arguments.length; i++) {
|
||||
var argument = arguments[i];
|
||||
Expression value;
|
||||
FormalParameterElementMixin? parameter;
|
||||
InternalFormalParameterElement? parameter;
|
||||
Object parameterKey;
|
||||
if (argument is NamedExpressionImpl) {
|
||||
value = argument.expression;
|
||||
@@ -870,7 +870,7 @@ class _IdenticalArgumentInfo {
|
||||
class _ParamInfo {
|
||||
/// The function parameter corresponding to the argument, or `null` if we are
|
||||
/// resolving a dynamic invocation.
|
||||
final FormalParameterElementMixin? parameter;
|
||||
final InternalFormalParameterElement? parameter;
|
||||
|
||||
_ParamInfo(this.parameter);
|
||||
}
|
||||
|
||||
@@ -601,7 +601,7 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
|
||||
nameNode.element = member;
|
||||
|
||||
if (member is PropertyAccessorElement2OrMember) {
|
||||
if (member is InternalPropertyAccessorElement) {
|
||||
return _rewriteAsFunctionExpressionInvocation(
|
||||
node,
|
||||
node.target,
|
||||
@@ -758,7 +758,7 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
if (element is MultiplyDefinedElement) {
|
||||
element = element.conflictingElements[0];
|
||||
}
|
||||
if (element is PropertyAccessorElement2OrMember) {
|
||||
if (element is InternalPropertyAccessorElement) {
|
||||
return _rewriteAsFunctionExpressionInvocation(
|
||||
node,
|
||||
node.target,
|
||||
@@ -770,7 +770,7 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
isCascaded: node.isCascaded,
|
||||
);
|
||||
}
|
||||
if (element is ExecutableElement2OrMember) {
|
||||
if (element is InternalExecutableElement) {
|
||||
_setResolution(
|
||||
node,
|
||||
element.type,
|
||||
@@ -924,7 +924,7 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
element = element.conflictingElements[0];
|
||||
}
|
||||
|
||||
if (element is PropertyAccessorElement2OrMember) {
|
||||
if (element is InternalPropertyAccessorElement) {
|
||||
return _rewriteAsFunctionExpressionInvocation(
|
||||
node,
|
||||
node.target,
|
||||
@@ -937,7 +937,7 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
);
|
||||
}
|
||||
|
||||
if (element is ExecutableElement2OrMember) {
|
||||
if (element is InternalExecutableElement) {
|
||||
_setResolution(
|
||||
node,
|
||||
element.type,
|
||||
@@ -990,7 +990,7 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
// If there is that concrete dispatch target, then we are done.
|
||||
if (target != null) {
|
||||
nameNode.element = target;
|
||||
if (target is PropertyAccessorElement2OrMember) {
|
||||
if (target is InternalPropertyAccessorElement) {
|
||||
return _rewriteAsFunctionExpressionInvocation(
|
||||
node,
|
||||
node.target,
|
||||
@@ -1191,9 +1191,9 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
|
||||
var element = _resolveElement(receiver, nameNode);
|
||||
if (element != null) {
|
||||
if (element is ExecutableElement2OrMember) {
|
||||
if (element is InternalExecutableElement) {
|
||||
nameNode.element = element;
|
||||
if (element is PropertyAccessorElement2OrMember) {
|
||||
if (element is InternalPropertyAccessorElement) {
|
||||
return _rewriteAsFunctionExpressionInvocation(
|
||||
node,
|
||||
node.target,
|
||||
@@ -1248,9 +1248,9 @@ class MethodInvocationResolver with ScopeHelpers {
|
||||
}) {
|
||||
var element = _resolveElement(receiver, node.memberName);
|
||||
if (element != null) {
|
||||
if (element is ExecutableElement2OrMember) {
|
||||
if (element is InternalExecutableElement) {
|
||||
node.memberName.element = element;
|
||||
if (element is PropertyAccessorElement2OrMember) {
|
||||
if (element is InternalPropertyAccessorElement) {
|
||||
return _rewriteAsFunctionExpressionInvocation(
|
||||
node,
|
||||
null,
|
||||
|
||||
@@ -352,7 +352,7 @@ class PropertyElementResolver with ScopeHelpers {
|
||||
}
|
||||
|
||||
readElementRequested = readLookup?.requested;
|
||||
if (readElementRequested is PropertyAccessorElement2OrMember &&
|
||||
if (readElementRequested is InternalPropertyAccessorElement &&
|
||||
!readElementRequested.isStatic) {
|
||||
var unpromotedType = readElementRequested.returnType;
|
||||
getType =
|
||||
@@ -586,8 +586,8 @@ class PropertyElementResolver with ScopeHelpers {
|
||||
TypeImpl? getType;
|
||||
if (hasRead) {
|
||||
var unpromotedType = switch (result.getter2) {
|
||||
MethodElement2OrMember(:var type) => type,
|
||||
PropertyAccessorElement2OrMember(:var returnType) => returnType,
|
||||
InternalMethodElement(:var type) => type,
|
||||
InternalPropertyAccessorElement(:var returnType) => returnType,
|
||||
_ => result.recordField?.type ?? _typeSystem.typeProvider.dynamicType,
|
||||
};
|
||||
getType =
|
||||
@@ -919,8 +919,8 @@ class PropertyElementResolver with ScopeHelpers {
|
||||
}
|
||||
var targetType = target.staticType;
|
||||
|
||||
ExecutableElement2OrMember? readElement;
|
||||
ExecutableElement2OrMember? writeElement;
|
||||
InternalExecutableElement? readElement;
|
||||
InternalExecutableElement? writeElement;
|
||||
TypeImpl? getType;
|
||||
|
||||
if (targetType is InterfaceTypeImpl) {
|
||||
|
||||
@@ -52,10 +52,10 @@ class ResolutionResult extends SimpleResolutionResult {
|
||||
|
||||
class SimpleResolutionResult {
|
||||
/// Return the element that is invoked for reading.
|
||||
final ExecutableElement2OrMember? getter2;
|
||||
final InternalExecutableElement? getter2;
|
||||
|
||||
/// Return the element that is invoked for writing.
|
||||
final ExecutableElement2OrMember? setter2;
|
||||
final InternalExecutableElement? setter2;
|
||||
|
||||
const SimpleResolutionResult({this.getter2, this.setter2});
|
||||
}
|
||||
|
||||
@@ -35,13 +35,13 @@ class TypePropertyResolver {
|
||||
|
||||
bool _needsGetterError = false;
|
||||
bool _reportedGetterError = false;
|
||||
ExecutableElement2OrMember? _getterRequested;
|
||||
ExecutableElement2OrMember? _getterRecovery;
|
||||
InternalExecutableElement? _getterRequested;
|
||||
InternalExecutableElement? _getterRecovery;
|
||||
|
||||
bool _needsSetterError = false;
|
||||
bool _reportedSetterError = false;
|
||||
ExecutableElement2OrMember? _setterRequested;
|
||||
ExecutableElement2OrMember? _setterRecovery;
|
||||
InternalExecutableElement? _setterRequested;
|
||||
InternalExecutableElement? _setterRecovery;
|
||||
|
||||
TypePropertyResolver(this._resolver)
|
||||
: _definingLibrary = _resolver.definingLibrary,
|
||||
|
||||
@@ -20,14 +20,14 @@ import 'package:analyzer/src/error/codes.dart';
|
||||
class CorrectOverrideHelper {
|
||||
final TypeSystemImpl _typeSystem;
|
||||
|
||||
final ExecutableElement2OrMember _thisMember;
|
||||
final InternalExecutableElement _thisMember;
|
||||
FunctionTypeImpl? _thisTypeForSubtype;
|
||||
|
||||
final DiagnosticFactory _diagnosticFactory = DiagnosticFactory();
|
||||
|
||||
CorrectOverrideHelper({
|
||||
required TypeSystemImpl typeSystem,
|
||||
required ExecutableElement2OrMember thisMember,
|
||||
required InternalExecutableElement thisMember,
|
||||
}) : _typeSystem = typeSystem,
|
||||
_thisMember = thisMember {
|
||||
_computeThisTypeForSubtype();
|
||||
@@ -72,7 +72,7 @@ class CorrectOverrideHelper {
|
||||
var type = _thisMember.type;
|
||||
var parameters = type.formalParameters;
|
||||
|
||||
List<FormalParameterElementMixin>? newParameters;
|
||||
List<InternalFormalParameterElement>? newParameters;
|
||||
for (var i = 0; i < parameters.length; i++) {
|
||||
var parameter = parameters[i];
|
||||
if (parameter.isCovariant) {
|
||||
@@ -98,9 +98,9 @@ class CovariantParametersVerifier {
|
||||
final AnalysisSessionImpl _session;
|
||||
final TypeSystemImpl _typeSystem;
|
||||
|
||||
final ExecutableElement2OrMember _thisMember;
|
||||
final InternalExecutableElement _thisMember;
|
||||
|
||||
CovariantParametersVerifier({required ExecutableElement2OrMember thisMember})
|
||||
CovariantParametersVerifier({required InternalExecutableElement thisMember})
|
||||
: _session = thisMember.library.session as AnalysisSessionImpl,
|
||||
_typeSystem = thisMember.library.typeSystem as TypeSystemImpl,
|
||||
_thisMember = thisMember;
|
||||
@@ -154,8 +154,9 @@ class CovariantParametersVerifier {
|
||||
return superMembers;
|
||||
}
|
||||
|
||||
Map<FormalParameterElementMixin, List<_SuperParameter>> _superParameters() {
|
||||
var result = <FormalParameterElementMixin, List<_SuperParameter>>{};
|
||||
Map<InternalFormalParameterElement, List<_SuperParameter>>
|
||||
_superParameters() {
|
||||
var result = <InternalFormalParameterElement, List<_SuperParameter>>{};
|
||||
|
||||
List<_SuperMember>? superMembers;
|
||||
var parameters = _thisMember.formalParameters;
|
||||
|
||||
@@ -675,7 +675,7 @@ class MemberDuplicateDefinitionVerifier {
|
||||
}
|
||||
var baseName = accessor.displayName;
|
||||
var inherited = _getInheritedMember(fragment.element, baseName);
|
||||
if (inherited is MethodElement2OrMember) {
|
||||
if (inherited is InternalMethodElement) {
|
||||
_diagnosticReporter.atElement2(
|
||||
accessor.asElement2,
|
||||
CompileTimeErrorCode.CONFLICTING_FIELD_AND_METHOD,
|
||||
@@ -697,7 +697,7 @@ class MemberDuplicateDefinitionVerifier {
|
||||
}
|
||||
var baseName = method.displayName;
|
||||
var inherited = _getInheritedMember(fragment.element, baseName);
|
||||
if (inherited is PropertyAccessorElement2OrMember) {
|
||||
if (inherited is InternalPropertyAccessorElement) {
|
||||
_diagnosticReporter.atElement2(
|
||||
method.asElement2,
|
||||
CompileTimeErrorCode.CONFLICTING_METHOD_AND_FIELD,
|
||||
@@ -881,7 +881,7 @@ class MemberDuplicateDefinitionVerifier {
|
||||
_InstanceElementContext();
|
||||
}
|
||||
|
||||
ExecutableElement2OrMember? _getInheritedMember(
|
||||
InternalExecutableElement? _getInheritedMember(
|
||||
InterfaceElementImpl element,
|
||||
String baseName,
|
||||
) {
|
||||
@@ -897,7 +897,7 @@ class MemberDuplicateDefinitionVerifier {
|
||||
return _inheritanceManager.getInherited(element, setterName);
|
||||
}
|
||||
|
||||
ExecutableElement2OrMember? _getInterfaceMember(
|
||||
InternalExecutableElement? _getInterfaceMember(
|
||||
InterfaceElementImpl element,
|
||||
String baseName,
|
||||
) {
|
||||
|
||||
@@ -107,7 +107,7 @@ class GetterSetterTypesVerifier {
|
||||
}
|
||||
}
|
||||
|
||||
void checkStaticGetters(List<GetterElement2OrMember> getters) {
|
||||
void checkStaticGetters(List<InternalGetterElement> getters) {
|
||||
if (_skipGetterSetterTypesCheck) {
|
||||
return;
|
||||
}
|
||||
@@ -119,7 +119,7 @@ class GetterSetterTypesVerifier {
|
||||
}
|
||||
}
|
||||
|
||||
void _checkLocalGetter(GetterElement2OrMember getter) {
|
||||
void _checkLocalGetter(InternalGetterElement getter) {
|
||||
var name = getter.name;
|
||||
if (name == null) {
|
||||
return;
|
||||
@@ -146,12 +146,12 @@ class GetterSetterTypesVerifier {
|
||||
}
|
||||
|
||||
/// Return the return type of the [getter].
|
||||
static TypeImpl _getGetterType(GetterElement2OrMember getter) {
|
||||
static TypeImpl _getGetterType(InternalGetterElement getter) {
|
||||
return getter.returnType;
|
||||
}
|
||||
|
||||
/// Return the type of the first parameter of the [setter].
|
||||
static TypeImpl? _getSetterType(SetterElement2OrMember setter) {
|
||||
static TypeImpl? _getSetterType(InternalSetterElement setter) {
|
||||
var parameters = setter.formalParameters;
|
||||
if (parameters.isNotEmpty) {
|
||||
return parameters[0].type;
|
||||
|
||||
@@ -23,7 +23,7 @@ import 'package:analyzer/src/error/inference_error.dart';
|
||||
import 'package:analyzer/src/utilities/extensions/element.dart';
|
||||
|
||||
final _missingMustBeOverridden = Expando<List<ExecutableElement>>();
|
||||
final _missingOverrides = Expando<List<ExecutableElement2OrMember>>();
|
||||
final _missingOverrides = Expando<List<InternalExecutableElement>>();
|
||||
|
||||
class InheritanceOverrideVerifier {
|
||||
final TypeSystemImpl _typeSystem;
|
||||
@@ -299,7 +299,7 @@ class _ClassVerifier {
|
||||
|
||||
if (firstFragment is ClassFragmentImpl && !firstFragment.isAbstract ||
|
||||
firstFragment is EnumFragmentImpl) {
|
||||
List<ExecutableElement2OrMember>? inheritedAbstract;
|
||||
List<InternalExecutableElement>? inheritedAbstract;
|
||||
|
||||
for (var name in interface.map.keys) {
|
||||
if (!name.isAccessibleFor(libraryUri)) {
|
||||
@@ -355,7 +355,7 @@ class _ClassVerifier {
|
||||
diagnosticReporter: reporter,
|
||||
errorNode: classNameToken,
|
||||
diagnosticCode:
|
||||
concreteElement is SetterElement2OrMember
|
||||
concreteElement is InternalSetterElement
|
||||
? CompileTimeErrorCode.INVALID_IMPLEMENTATION_OVERRIDE_SETTER
|
||||
: CompileTimeErrorCode.INVALID_IMPLEMENTATION_OVERRIDE,
|
||||
);
|
||||
@@ -373,7 +373,7 @@ class _ClassVerifier {
|
||||
void _checkDeclaredMember(
|
||||
SyntacticEntity node,
|
||||
Uri libraryUri,
|
||||
ExecutableElement2OrMember? member, {
|
||||
InternalExecutableElement? member, {
|
||||
List<FormalParameter>? methodParameterNodes,
|
||||
int mixinIndex = -1,
|
||||
}) {
|
||||
@@ -864,7 +864,7 @@ class _ClassVerifier {
|
||||
}
|
||||
|
||||
void _reportInheritedAbstractMembers(
|
||||
List<ExecutableElement2OrMember>? elements,
|
||||
List<InternalExecutableElement>? elements,
|
||||
) {
|
||||
if (elements == null) {
|
||||
return;
|
||||
|
||||
@@ -78,7 +78,7 @@ class ManifestFunctionNamedFormalParameter
|
||||
other.type == type;
|
||||
}
|
||||
|
||||
bool match(MatchContext context, FormalParameterElementMixin element) {
|
||||
bool match(MatchContext context, InternalFormalParameterElement element) {
|
||||
return element.isNamed &&
|
||||
element.isRequired == isRequired &&
|
||||
type.match(context, element.type) &&
|
||||
@@ -127,7 +127,7 @@ class ManifestFunctionPositionalFormalParameter
|
||||
other.type == type;
|
||||
}
|
||||
|
||||
bool match(MatchContext context, FormalParameterElementMixin element) {
|
||||
bool match(MatchContext context, InternalFormalParameterElement element) {
|
||||
return element.isPositional &&
|
||||
element.isRequired == isRequired &&
|
||||
type.match(context, element.type);
|
||||
|
||||
@@ -144,7 +144,7 @@ class ElementResolver {
|
||||
// Nothing to do.
|
||||
} else if (type is InterfaceTypeImpl) {
|
||||
// look up ConstructorElement
|
||||
ConstructorElementMixin2? constructor;
|
||||
InternalConstructorElement? constructor;
|
||||
var name = node.name;
|
||||
if (name == null) {
|
||||
constructor = type.lookUpConstructor(null, _definingLibrary);
|
||||
@@ -430,7 +430,7 @@ class ElementResolver {
|
||||
/// the list of arguments. An error will be reported if any of the arguments
|
||||
/// cannot be matched to a parameter. Return the parameters that correspond to
|
||||
/// the arguments, or `null` if no correspondence could be computed.
|
||||
List<FormalParameterElementMixin?>? _resolveArgumentsToFunction(
|
||||
List<InternalFormalParameterElement?>? _resolveArgumentsToFunction(
|
||||
ArgumentList argumentList,
|
||||
ExecutableElement? executableElement, {
|
||||
ConstructorDeclaration? enclosingConstructor,
|
||||
|
||||
@@ -193,7 +193,7 @@ mixin ErrorDetectionHelpers {
|
||||
/// [CompileTimeErrorCode.FIELD_INITIALIZER_NOT_ASSIGNABLE].
|
||||
void checkForFieldInitializerNotAssignable(
|
||||
ConstructorFieldInitializerImpl initializer,
|
||||
FieldElement2OrMember fieldElement, {
|
||||
InternalFieldElement fieldElement, {
|
||||
required bool isConstConstructor,
|
||||
required Map<SharedTypeView, NonPromotionReason> Function()? whyNotPromoted,
|
||||
}) {
|
||||
@@ -288,11 +288,11 @@ mixin ErrorDetectionHelpers {
|
||||
|
||||
void checkIndexExpressionIndex(
|
||||
Expression index, {
|
||||
required ExecutableElement2OrMember? readElement,
|
||||
required ExecutableElement2OrMember? writeElement,
|
||||
required InternalExecutableElement? readElement,
|
||||
required InternalExecutableElement? writeElement,
|
||||
required Map<SharedTypeView, NonPromotionReason> Function()? whyNotPromoted,
|
||||
}) {
|
||||
if (readElement is MethodElement2OrMember) {
|
||||
if (readElement is InternalMethodElement) {
|
||||
var parameters = readElement.formalParameters;
|
||||
if (parameters.isNotEmpty) {
|
||||
_checkForArgumentTypeNotAssignableForArgument(
|
||||
@@ -304,7 +304,7 @@ mixin ErrorDetectionHelpers {
|
||||
}
|
||||
}
|
||||
|
||||
if (writeElement is MethodElement2OrMember) {
|
||||
if (writeElement is InternalMethodElement) {
|
||||
var parameters = writeElement.formalParameters;
|
||||
if (parameters.isNotEmpty) {
|
||||
_checkForArgumentTypeNotAssignableForArgument(
|
||||
@@ -341,7 +341,7 @@ mixin ErrorDetectionHelpers {
|
||||
/// > Let `e` be an expression whose static type is an interface type that has
|
||||
/// > a method named `call`. In the case where the context type for `e`
|
||||
/// > is a function type or the type `Function`, `e` is treated as `e.call`.
|
||||
MethodElement2OrMember? getImplicitCallMethod(
|
||||
InternalMethodElement? getImplicitCallMethod(
|
||||
DartType type,
|
||||
DartType context,
|
||||
SyntacticEntity errorNode,
|
||||
@@ -389,7 +389,7 @@ mixin ErrorDetectionHelpers {
|
||||
|
||||
void _checkForArgumentTypeNotAssignableForArgument({
|
||||
required Expression argument,
|
||||
required FormalParameterElementMixin? parameter,
|
||||
required InternalFormalParameterElement? parameter,
|
||||
required bool promoteParameterToNullable,
|
||||
Map<SharedTypeView, NonPromotionReason> Function()? whyNotPromoted,
|
||||
}) {
|
||||
|
||||
@@ -100,7 +100,7 @@ void checkForTypeParameterBoundRecursion(
|
||||
}
|
||||
|
||||
class EnclosingExecutableContext {
|
||||
final ExecutableElement2OrMember? element;
|
||||
final InternalExecutableElement? element;
|
||||
final bool isAsynchronous;
|
||||
final bool isConstConstructor;
|
||||
final bool isGenerativeConstructor;
|
||||
@@ -133,9 +133,9 @@ class EnclosingExecutableContext {
|
||||
required this.isGenerator,
|
||||
this.catchErrorOnErrorReturnType,
|
||||
}) : isConstConstructor =
|
||||
element is ConstructorElementMixin2 && element.isConst,
|
||||
element is InternalConstructorElement && element.isConst,
|
||||
isGenerativeConstructor =
|
||||
element is ConstructorElementMixin2 && !element.isFactory,
|
||||
element is InternalConstructorElement && !element.isFactory,
|
||||
inFactoryConstructor = _inFactoryConstructor(element),
|
||||
inStaticMethod = _inStaticMethod(element);
|
||||
|
||||
@@ -2255,7 +2255,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
);
|
||||
|
||||
if (method.isStatic) {
|
||||
void reportStaticConflict(ExecutableElement2OrMember inherited) {
|
||||
void reportStaticConflict(InternalExecutableElement inherited) {
|
||||
diagnosticReporter.atElement2(
|
||||
method.asElement2,
|
||||
CompileTimeErrorCode.CONFLICTING_STATIC_AND_INSTANCE,
|
||||
@@ -2283,7 +2283,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
continue;
|
||||
}
|
||||
|
||||
void reportFieldConflict(PropertyAccessorElement2OrMember inherited) {
|
||||
void reportFieldConflict(InternalPropertyAccessorElement inherited) {
|
||||
diagnosticReporter.atElement2(
|
||||
method.asElement2,
|
||||
CompileTimeErrorCode.CONFLICTING_METHOD_AND_FIELD,
|
||||
@@ -2295,12 +2295,12 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
);
|
||||
}
|
||||
|
||||
if (getter is GetterElement2OrMember) {
|
||||
if (getter is InternalGetterElement) {
|
||||
reportFieldConflict(getter);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (setter is SetterElement2OrMember) {
|
||||
if (setter is InternalSetterElement) {
|
||||
reportFieldConflict(setter);
|
||||
continue;
|
||||
}
|
||||
@@ -2331,7 +2331,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
],
|
||||
);
|
||||
conflictingDeclaredNames.add(name);
|
||||
} else if (inherited is MethodElement2OrMember) {
|
||||
} else if (inherited is InternalMethodElement) {
|
||||
// Extension type accessors preclude inherited accessors/methods.
|
||||
if (enclosingClass is ExtensionTypeElementImpl) {
|
||||
continue;
|
||||
@@ -2353,14 +2353,14 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
var inherited = _inheritanceManager.getInheritedMap(enclosingClass);
|
||||
for (var entry in inherited.entries) {
|
||||
var method = entry.value;
|
||||
if (method is MethodElement2OrMember) {
|
||||
if (method is InternalMethodElement) {
|
||||
var methodName = entry.key;
|
||||
if (conflictingDeclaredNames.contains(methodName.name)) {
|
||||
continue;
|
||||
}
|
||||
var setterName = methodName.forSetter;
|
||||
var setter = inherited[setterName];
|
||||
if (setter is PropertyAccessorElement2OrMember) {
|
||||
if (setter is InternalPropertyAccessorElement) {
|
||||
diagnosticReporter.atElement2(
|
||||
enclosingClass,
|
||||
CompileTimeErrorCode.CONFLICTING_INHERITED_METHOD_AND_SETTER,
|
||||
@@ -6351,7 +6351,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
}
|
||||
|
||||
void _withEnclosingExecutable(
|
||||
ExecutableElement2OrMember element,
|
||||
InternalExecutableElement element,
|
||||
void Function() operation, {
|
||||
required bool isAsynchronous,
|
||||
required bool isGenerator,
|
||||
|
||||
@@ -576,11 +576,11 @@ class PatternConverter with SpaceCreator<DartPattern, TypeImpl> {
|
||||
properties[name] = field.pattern;
|
||||
var element = field.element;
|
||||
TypeImpl? extensionPropertyType;
|
||||
if (element is PropertyAccessorElement2OrMember &&
|
||||
if (element is InternalPropertyAccessorElement &&
|
||||
(element.enclosingElement is ExtensionElementImpl ||
|
||||
element.enclosingElement is ExtensionTypeElementImpl)) {
|
||||
extensionPropertyType = element.returnType;
|
||||
} else if (element is ExecutableElement2OrMember &&
|
||||
} else if (element is InternalExecutableElement &&
|
||||
(element.enclosingElement is ExtensionElementImpl ||
|
||||
element.enclosingElement is ExtensionTypeElementImpl)) {
|
||||
extensionPropertyType = element.type;
|
||||
|
||||
@@ -254,7 +254,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
covariant FunctionExpressionInvocationImpl node,
|
||||
) {
|
||||
var element = node.element;
|
||||
if (element is MethodElement2OrMember) {
|
||||
if (element is InternalMethodElement) {
|
||||
var enclosingElement = element.enclosingElement;
|
||||
if (enclosingElement.isAllocatorExtension &&
|
||||
element.name == _allocateExtensionMethodName) {
|
||||
@@ -340,7 +340,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
@override
|
||||
void visitMethodInvocation(covariant MethodInvocationImpl node) {
|
||||
var element = node.methodName.element;
|
||||
if (element is MethodElement2OrMember) {
|
||||
if (element is InternalMethodElement) {
|
||||
var enclosingElement = element.enclosingElement;
|
||||
if (enclosingElement.isPointer) {
|
||||
if (element.name == 'fromFunction') {
|
||||
@@ -485,7 +485,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
var ffiSignature = annotationType.typeArguments[0]; // The T in @Native<T>
|
||||
|
||||
if (ffiSignature is FunctionTypeImpl) {
|
||||
if (declarationElement is ExecutableElement2OrMember) {
|
||||
if (declarationElement is InternalExecutableElement) {
|
||||
_checkFfiNativeFunction(
|
||||
errorNode,
|
||||
declarationElement,
|
||||
@@ -504,7 +504,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
} else {
|
||||
if (declarationElement
|
||||
case TopLevelFunctionElement() || MethodElement()) {
|
||||
declarationElement = declarationElement as ExecutableElement2OrMember;
|
||||
declarationElement = declarationElement as InternalExecutableElement;
|
||||
var dartSignature = declarationElement.type;
|
||||
|
||||
if (declarationElement.isStatic && ffiSignature is DynamicType) {
|
||||
@@ -564,7 +564,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
) {
|
||||
TypeImpl type;
|
||||
|
||||
if (declarationElement is FieldElement2OrMember) {
|
||||
if (declarationElement is InternalFieldElement) {
|
||||
if (!declarationElement.isStatic) {
|
||||
_diagnosticReporter.atToken(
|
||||
errorToken,
|
||||
@@ -574,7 +574,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
type = declarationElement.type;
|
||||
} else if (declarationElement is TopLevelVariableElementImpl) {
|
||||
type = declarationElement.type;
|
||||
} else if (declarationElement is PropertyAccessorElement2OrMember) {
|
||||
} else if (declarationElement is InternalPropertyAccessorElement) {
|
||||
type = declarationElement.variable.type;
|
||||
} else {
|
||||
_diagnosticReporter.atToken(errorToken, FfiCode.NATIVE_FIELD_NOT_STATIC);
|
||||
@@ -629,7 +629,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
|
||||
void _checkFfiNativeFunction(
|
||||
Token errorToken,
|
||||
ExecutableElement2OrMember declarationElement,
|
||||
InternalExecutableElement declarationElement,
|
||||
FunctionTypeImpl ffiSignature,
|
||||
DartObject annotationValue,
|
||||
List<FormalParameter> formalParameters,
|
||||
@@ -916,12 +916,10 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
var elementType = nativeType.typeArguments.single;
|
||||
var elementName = elementType.element?.name;
|
||||
if (dartType.element.isTypedDataClass) {
|
||||
if (elementName == 'Float' &&
|
||||
dartType.element.name == 'Float32List') {
|
||||
if (elementName == 'Float' && dartType.element.name == 'Float32List') {
|
||||
return true;
|
||||
}
|
||||
if (elementName == 'Double' &&
|
||||
dartType.element.name == 'Float64List') {
|
||||
if (elementName == 'Double' && dartType.element.name == 'Float64List') {
|
||||
return true;
|
||||
}
|
||||
if (_primitiveIntegerNativeTypesFixedSize.contains(elementName) &&
|
||||
@@ -1242,7 +1240,7 @@ class FfiVerifier extends RecursiveAstVisitor<void> {
|
||||
/// `Pointer<T>.asFunction<F>()`.
|
||||
void _validateAsFunction(
|
||||
covariant MethodInvocationImpl node,
|
||||
MethodElement2OrMember element,
|
||||
InternalMethodElement element,
|
||||
) {
|
||||
var typeArguments = node.typeArguments?.arguments;
|
||||
AstNode errorNode = typeArguments != null ? typeArguments[0] : node;
|
||||
|
||||
@@ -1479,8 +1479,8 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
checkIndexExpressionIndex(
|
||||
node.index,
|
||||
readElement:
|
||||
hasRead ? result.readElement2 as ExecutableElement2OrMember? : null,
|
||||
writeElement: result.writeElement2 as ExecutableElement2OrMember?,
|
||||
hasRead ? result.readElement2 as InternalExecutableElement? : null,
|
||||
writeElement: result.writeElement2 as InternalExecutableElement?,
|
||||
whyNotPromoted: whyNotPromoted,
|
||||
);
|
||||
|
||||
@@ -1635,7 +1635,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
var getter = result.getter2;
|
||||
if (getter != null) {
|
||||
fieldNode.element = getter;
|
||||
if (getter is PropertyAccessorElement2OrMember) {
|
||||
if (getter is InternalPropertyAccessorElement) {
|
||||
return (getter, SharedTypeView(getter.returnType));
|
||||
} else {
|
||||
return (getter, SharedTypeView(getter.type));
|
||||
@@ -1688,7 +1688,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
);
|
||||
}
|
||||
|
||||
var element = result.getter2 as MethodElement2OrMember?;
|
||||
var element = result.getter2 as InternalMethodElement?;
|
||||
node.element = element;
|
||||
if (element == null) {
|
||||
return null;
|
||||
@@ -1714,13 +1714,13 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
var readType =
|
||||
atDynamicTarget ? DynamicTypeImpl.instance : InvalidTypeImpl.instance;
|
||||
if (node is IndexExpression) {
|
||||
if (element is MethodElement2OrMember) {
|
||||
if (element is InternalMethodElement) {
|
||||
readType = element.returnType;
|
||||
}
|
||||
} else if (node is PrefixedIdentifier ||
|
||||
node is PropertyAccess ||
|
||||
node is SimpleIdentifier) {
|
||||
if (element is GetterElement2OrMember) {
|
||||
if (element is InternalGetterElement) {
|
||||
readType = element.returnType;
|
||||
} else if (element is VariableElement) {
|
||||
readType = localVariableTypeProvider.getType(
|
||||
@@ -1762,7 +1762,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
var writeType =
|
||||
atDynamicTarget ? DynamicTypeImpl.instance : InvalidTypeImpl.instance;
|
||||
if (node is IndexExpression) {
|
||||
if (element is MethodElement2OrMember) {
|
||||
if (element is InternalMethodElement) {
|
||||
var parameters = element.formalParameters;
|
||||
if (parameters.length == 2) {
|
||||
writeType = parameters[1].type;
|
||||
@@ -1771,7 +1771,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
} else if (node is PrefixedIdentifier ||
|
||||
node is PropertyAccess ||
|
||||
node is SimpleIdentifier) {
|
||||
if (element is SetterElement2OrMember) {
|
||||
if (element is InternalSetterElement) {
|
||||
if (element.isSynthetic) {
|
||||
writeType = element.variable.type;
|
||||
} else {
|
||||
@@ -1780,7 +1780,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
writeType = parameters[0].type;
|
||||
}
|
||||
}
|
||||
} else if (element is VariableElement2OrMember) {
|
||||
} else if (element is InternalVariableElement) {
|
||||
writeType = element.type;
|
||||
}
|
||||
}
|
||||
@@ -3142,7 +3142,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
var whyNotPromoted = flowAnalysis.flow?.whyNotPromoted(node.index);
|
||||
checkIndexExpressionIndex(
|
||||
node.index,
|
||||
readElement: result.readElement2 as ExecutableElement2OrMember?,
|
||||
readElement: result.readElement2 as InternalExecutableElement?,
|
||||
writeElement: null,
|
||||
whyNotPromoted: whyNotPromoted,
|
||||
);
|
||||
@@ -4435,7 +4435,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
DartType type;
|
||||
if (element is MethodElement) {
|
||||
type = element.type;
|
||||
} else if (element is ConstructorElementMixin2) {
|
||||
} else if (element is InternalConstructorElement) {
|
||||
type = element.type;
|
||||
} else if (element is GetterElement) {
|
||||
type = resolverResult.getType!;
|
||||
@@ -4580,7 +4580,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
///
|
||||
/// Returns the parameters that correspond to the arguments. If no parameter
|
||||
/// matched an argument, that position will be `null` in the list.
|
||||
static List<FormalParameterElementMixin?> resolveArgumentsToParameters({
|
||||
static List<InternalFormalParameterElement?> resolveArgumentsToParameters({
|
||||
required ArgumentList argumentList,
|
||||
required List<FormalParameterElement> formalParameters,
|
||||
DiagnosticReporter? diagnosticReporter,
|
||||
@@ -4588,11 +4588,11 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
}) {
|
||||
int requiredParameterCount = 0;
|
||||
int unnamedParameterCount = 0;
|
||||
var unnamedParameters = <FormalParameterElementMixin>[];
|
||||
Map<String, FormalParameterElementMixin>? namedParameters;
|
||||
var unnamedParameters = <InternalFormalParameterElement>[];
|
||||
Map<String, InternalFormalParameterElement>? namedParameters;
|
||||
int length = formalParameters.length;
|
||||
for (int i = 0; i < length; i++) {
|
||||
var parameter = formalParameters[i] as FormalParameterElementMixin;
|
||||
var parameter = formalParameters[i] as InternalFormalParameterElement;
|
||||
if (parameter.isRequiredPositional) {
|
||||
unnamedParameters.add(parameter);
|
||||
unnamedParameterCount++;
|
||||
@@ -4608,7 +4608,7 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
|
||||
int unnamedIndex = 0;
|
||||
NodeList<Expression> arguments = argumentList.arguments;
|
||||
int argumentCount = arguments.length;
|
||||
var resolvedParameters = List<FormalParameterElementMixin?>.filled(
|
||||
var resolvedParameters = List<InternalFormalParameterElement?>.filled(
|
||||
argumentCount,
|
||||
null,
|
||||
);
|
||||
|
||||
@@ -273,7 +273,7 @@ class AstBinaryReader {
|
||||
operator: Tokens.fromType(operatorType),
|
||||
rightHandSide: rightHandSide,
|
||||
);
|
||||
node.element = _reader.readElement() as MethodElement2OrMember?;
|
||||
node.element = _reader.readElement() as InternalMethodElement?;
|
||||
node.readElement = _reader.readElement();
|
||||
node.readType = _reader.readType();
|
||||
node.writeElement = _reader.readElement();
|
||||
@@ -365,7 +365,7 @@ class AstBinaryReader {
|
||||
period: name != null ? Tokens.period() : null,
|
||||
name: name,
|
||||
);
|
||||
node.element = _reader.readElement() as ConstructorElementMixin2?;
|
||||
node.element = _reader.readElement() as InternalConstructorElement?;
|
||||
return node;
|
||||
}
|
||||
|
||||
@@ -1286,7 +1286,7 @@ class AstBinaryReader {
|
||||
constructorName: constructorName,
|
||||
argumentList: argumentList,
|
||||
);
|
||||
node.element = _reader.readElement() as ConstructorElementMixin2?;
|
||||
node.element = _reader.readElement() as InternalConstructorElement?;
|
||||
_resolveNamedExpressions(node.element, node.argumentList);
|
||||
return node;
|
||||
}
|
||||
|
||||
@@ -1500,8 +1500,8 @@ class ResolutionReader {
|
||||
return _reader.readByte();
|
||||
}
|
||||
|
||||
ConstructorElementMixin2? readConstructorElementMixin() {
|
||||
return readElement() as ConstructorElementMixin2?;
|
||||
InternalConstructorElement? readConstructorElementMixin() {
|
||||
return readElement() as InternalConstructorElement?;
|
||||
}
|
||||
|
||||
double readDouble() {
|
||||
|
||||
@@ -1014,7 +1014,7 @@ class ResolutionSink extends _SummaryDataWriter {
|
||||
}
|
||||
|
||||
void _writeFormalParameters2(
|
||||
List<FormalParameterElementMixin> parameters, {
|
||||
List<InternalFormalParameterElement> parameters, {
|
||||
required bool withAnnotations,
|
||||
}) {
|
||||
writeList(parameters, (parameter) {
|
||||
@@ -1342,7 +1342,7 @@ class _SummaryDataWriter extends BufferedSink {
|
||||
}
|
||||
}
|
||||
|
||||
void _writeFormalParameterKind2(FormalParameterElementMixin p) {
|
||||
void _writeFormalParameterKind2(InternalFormalParameterElement p) {
|
||||
if (p.isRequiredPositional) {
|
||||
writeByte(Tag.ParameterKindRequiredPositional);
|
||||
} else if (p.isOptionalPositional) {
|
||||
|
||||
@@ -40,7 +40,7 @@ class InstanceMemberInferrer {
|
||||
/// same kind as the [element].
|
||||
bool _allSameElementKind(
|
||||
ExecutableElementImpl element,
|
||||
List<ExecutableElement2OrMember> elements,
|
||||
List<InternalExecutableElement> elements,
|
||||
) {
|
||||
var elementKind = element.kind;
|
||||
for (int i = 0; i < elements.length; i++) {
|
||||
@@ -54,10 +54,10 @@ class InstanceMemberInferrer {
|
||||
/// Given a method, return the parameter in the method that corresponds to the
|
||||
/// given [parameter]. If the parameter is positional, then it appears at the
|
||||
/// given [index] in its enclosing element's list of parameters.
|
||||
FormalParameterElementMixin? _getCorrespondingParameter(
|
||||
InternalFormalParameterElement? _getCorrespondingParameter(
|
||||
FormalParameterElementImpl parameter,
|
||||
int index,
|
||||
List<FormalParameterElementMixin> methodParameters,
|
||||
List<InternalFormalParameterElement> methodParameters,
|
||||
) {
|
||||
//
|
||||
// Find the corresponding parameter.
|
||||
@@ -130,7 +130,7 @@ class InstanceMemberInferrer {
|
||||
);
|
||||
if (overriddenGetters != null) {
|
||||
overriddenGetters =
|
||||
overriddenGetters.whereType<GetterElement2OrMember>().toList();
|
||||
overriddenGetters.whereType<InternalGetterElement>().toList();
|
||||
} else {
|
||||
overriddenGetters = const [];
|
||||
}
|
||||
@@ -548,7 +548,7 @@ class InstanceMemberInferrer {
|
||||
void _inferParameterCovariance(
|
||||
FormalParameterElementImpl parameter,
|
||||
int index,
|
||||
Iterable<ExecutableElement2OrMember> overridden,
|
||||
Iterable<InternalExecutableElement> overridden,
|
||||
) {
|
||||
parameter.inheritsCovariant = overridden.any((f) {
|
||||
var param = _getCorrespondingParameter(
|
||||
@@ -602,7 +602,7 @@ class InstanceMemberInferrer {
|
||||
/// https://github.com/dart-lang/language/issues/569
|
||||
void _resetOperatorEqualParameterTypeToDynamic(
|
||||
MethodElementImpl element,
|
||||
List<ExecutableElement2OrMember> overriddenElements,
|
||||
List<InternalExecutableElement> overriddenElements,
|
||||
) {
|
||||
if (element.name != '==') return;
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ class NamedTypeBuilder extends TypeBuilder {
|
||||
} else {
|
||||
return FunctionTypeImpl.v2(
|
||||
typeParameters: const <TypeParameterElementImpl>[],
|
||||
formalParameters: const <FormalParameterElementMixin>[],
|
||||
formalParameters: const <InternalFormalParameterElement>[],
|
||||
returnType: _dynamicType,
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
);
|
||||
|
||||
@@ -252,7 +252,7 @@ class TypesBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
List<FormalParameterElementMixin> _formalParameters(
|
||||
List<InternalFormalParameterElement> _formalParameters(
|
||||
FormalParameterList node,
|
||||
) {
|
||||
return node.parameters.asImpl.map((parameter) {
|
||||
|
||||
@@ -194,7 +194,7 @@ extension EnumElementImplExtension on EnumFragmentImpl {
|
||||
}
|
||||
}
|
||||
|
||||
extension ExecutableElement2OrMemberExtension on ExecutableElement2OrMember {
|
||||
extension ExecutableElement2OrMemberExtension on InternalExecutableElement {
|
||||
ExecutableFragmentImpl get declarationImpl => baseElement.firstFragment;
|
||||
}
|
||||
|
||||
|
||||
@@ -531,7 +531,7 @@ class _Element2Writer extends _AbstractElementWriter {
|
||||
}
|
||||
|
||||
void _writeFieldElement(FieldElementImpl e) {
|
||||
e as FieldElement2OrMember;
|
||||
e as InternalFieldElement;
|
||||
DartType type = e.type;
|
||||
expect(type, isNotNull);
|
||||
|
||||
|
||||
@@ -623,7 +623,7 @@ extension MethodDeclarationExtension on MethodDeclaration {
|
||||
var methodName = Name.forElement(declaredElement);
|
||||
if (methodName == null) return null;
|
||||
var inherited = parent.getInheritedMember(methodName);
|
||||
if (inherited is MethodElement2OrMember) return inherited;
|
||||
if (inherited is InternalMethodElement) return inherited;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -44,7 +44,7 @@ class _Visitor extends SimpleAstVisitor<void> {
|
||||
var overriddenMember = parent.getInheritedConcreteMember(
|
||||
Name(parent.library.uri, variable.name.lexeme),
|
||||
);
|
||||
if (overriddenMember is GetterElement2OrMember &&
|
||||
if (overriddenMember is InternalGetterElement &&
|
||||
overriddenMember.isSynthetic) {
|
||||
var definingInterface = overriddenMember.enclosingElement;
|
||||
rule.reportAtToken(
|
||||
|
||||
Reference in New Issue
Block a user