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:
Konstantin Shcheglov
2025-07-30 09:05:12 -07:00
committed by Commit Queue
parent 1cf0dea80f
commit e9b8dd9cb5
50 changed files with 581 additions and 598 deletions
@@ -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 {
+22 -22
View File
@@ -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) {
+217 -232
View File
@@ -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);
}
+51 -50
View File
@@ -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];
+46 -45
View File
@@ -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;
+2 -2
View File
@@ -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;
+16 -16
View File
@@ -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);
+1 -1
View File
@@ -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(