Skip to content

Commit

Permalink
Version 3.6.0-245.0.dev
Browse files Browse the repository at this point in the history
Merge b06e324 into dev
  • Loading branch information
Dart CI committed Sep 12, 2024
2 parents ddcf23c + b06e324 commit 675adb2
Show file tree
Hide file tree
Showing 3 changed files with 292 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pkg/analyzer/lib/dart/element/element2.dart
Original file line number Diff line number Diff line change
Expand Up @@ -993,7 +993,7 @@ abstract class JoinPatternVariableElement2 implements PatternVariableElement2 {
abstract class LabelElement2 implements Element2 {
@override
// TODO(brianwilkerson): We shouldn't be inheriting this member.
ExecutableElement2 get enclosingElement2;
ExecutableElement2? get enclosingElement2;

/// The function in which the variable is defined.
ExecutableFragment get enclosingFunction;
Expand Down
290 changes: 290 additions & 0 deletions pkg/analyzer/lib/src/dart/element/element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,15 @@ class BindPatternVariableElementImpl extends PatternVariableElementImpl
BindPatternVariableElementImpl(this.node, super.name, super.offset);
}

class BindPatternVariableElementImpl2 extends PatternVariableElementImpl2
implements BindPatternVariableElement2 {
BindPatternVariableElementImpl2(super._wrappedElement);

@override
BindPatternVariableElementImpl get _wrappedElement =>
super._wrappedElement as BindPatternVariableElementImpl;
}

/// An [InterfaceElementImpl] which is a class.
class ClassElementImpl extends ClassOrMixinElementImpl
with AugmentableElement<ClassElementImpl>
Expand Down Expand Up @@ -5418,6 +5427,23 @@ class JoinPatternVariableElementImpl extends PatternVariableElementImpl
bool operator ==(Object other) => identical(other, this);
}

class JoinPatternVariableElementImpl2 extends PatternVariableElementImpl2
implements JoinPatternVariableElement2 {
JoinPatternVariableElementImpl2(super._wrappedElement);

@override
bool get isConsistent => _wrappedElement.isConsistent;

@override
List<PatternVariableElement2> get variables2 => _wrappedElement.variables
.map((element) => PatternVariableElementImpl2.fromElement(element))
.toList();

@override
JoinPatternVariableElementImpl get _wrappedElement =>
super._wrappedElement as JoinPatternVariableElementImpl;
}

/// A concrete implementation of a [LabelElement].
class LabelElementImpl extends ElementImpl implements LabelElement {
/// A flag indicating whether this label is associated with a `switch` member
Expand Down Expand Up @@ -5456,6 +5482,35 @@ class LabelElementImpl extends ElementImpl implements LabelElement {
T? accept<T>(ElementVisitor<T> visitor) => visitor.visitLabelElement(this);
}

class LabelElementImpl2 extends ElementImpl2
with WrappedElementMixin
implements LabelElement2 {
@override
final LabelElementImpl _wrappedElement;

LabelElementImpl2(this._wrappedElement);

@override
LabelElement2 get baseElement => this;

@override
ExecutableElement2? get enclosingElement2 =>
super.enclosingElement2 as ExecutableElement2?;

@override
ExecutableFragment get enclosingFunction {
var element = _wrappedElement.enclosingElement3;
if (element is! ExecutableElementImpl) {
throw StateError(
'Expected to find ExecutableElement, but found ${element.runtimeType}');
}
return element;
}

@override
LibraryElement2 get library2 => super.library2!;
}

/// A concrete implementation of a [LibraryElement] or [LibraryElement2].
class LibraryElementImpl extends LibraryOrAugmentationElementImpl
with _HasLibraryMixin, MacroTargetElement
Expand Down Expand Up @@ -6266,6 +6321,150 @@ abstract class LibraryOrAugmentationElementImpl extends ElementImpl
}
}

class LocalFunctionElementImpl extends ExecutableElementImpl2
with WrappedElementMixin
implements LocalFunctionElement {
@override
final FunctionElementImpl _wrappedElement;

LocalFunctionElementImpl(this._wrappedElement);

@override
String? get documentationComment => _wrappedElement.documentationComment;

@override
ExecutableFragment get enclosingFunction {
var element = _wrappedElement.enclosingElement3;
if (element is! ExecutableElementImpl) {
throw StateError(
'Expected to find ExecutableElement, but found ${element.runtimeType}');
}
return element;
}

@override
bool get hasAlwaysThrows => _wrappedElement.hasAlwaysThrows;

@override
bool get hasDeprecated => _wrappedElement.hasDeprecated;

@override
bool get hasDoNotStore => _wrappedElement.hasDoNotStore;

@override
bool get hasDoNotSubmit => _wrappedElement.hasDoNotSubmit;

@override
bool get hasFactory => _wrappedElement.hasFactory;

@override
bool get hasImmutable => _wrappedElement.hasImmutable;

@override
bool get hasImplicitReturnType => _wrappedElement.hasImplicitReturnType;

@override
bool get hasInternal => _wrappedElement.hasInternal;

@override
bool get hasIsTest => _wrappedElement.hasIsTest;

@override
bool get hasIsTestGroup => _wrappedElement.hasIsTestGroup;

@override
bool get hasJS => _wrappedElement.hasJS;

@override
bool get hasLiteral => _wrappedElement.hasLiteral;

@override
bool get hasMustBeConst => _wrappedElement.hasMustBeConst;

@override
bool get hasMustBeOverridden => _wrappedElement.hasMustBeOverridden;

@override
bool get hasMustCallSuper => _wrappedElement.hasMustCallSuper;

@override
bool get hasNonVirtual => _wrappedElement.hasNonVirtual;

@override
bool get hasOptionalTypeArgs => _wrappedElement.hasOptionalTypeArgs;

@override
bool get hasOverride => _wrappedElement.hasOverride;

@override
bool get hasProtected => _wrappedElement.hasProtected;

@override
bool get hasRedeclare => _wrappedElement.hasRedeclare;

@override
bool get hasReopen => _wrappedElement.hasReopen;

@override
bool get hasRequired => _wrappedElement.hasRequired;

@override
bool get hasSealed => _wrappedElement.hasSealed;

@override
bool get hasUseResult => _wrappedElement.hasUseResult;

@override
bool get hasVisibleForOverriding => _wrappedElement.hasVisibleForOverriding;

@override
bool get hasVisibleForTemplate => _wrappedElement.hasVisibleForTemplate;

@override
bool get hasVisibleForTesting => _wrappedElement.hasVisibleForTesting;

@override
bool get hasVisibleOutsideTemplate =>
_wrappedElement.hasVisibleOutsideTemplate;

@override
bool get isAbstract => _wrappedElement.isAbstract;

@override
bool get isExtensionTypeMember => _wrappedElement.isExtensionTypeMember;

@override
bool get isExternal => false;

@override
bool get isSimplyBounded => _wrappedElement.isSimplyBounded;

@override
bool get isStatic => _wrappedElement.isStatic;

@override
List<ElementAnnotation> get metadata => _wrappedElement.metadata;

@override
List<FormalParameterElement> get parameters2 =>
_wrappedElement.parameters2.map((fragment) => fragment.element).toList();

@override
DartType get returnType => _wrappedElement.returnType;

@override
Version? get sinceSdkVersion => _wrappedElement.sinceSdkVersion;

@override
FunctionType get type => _wrappedElement.type;

@override
List<TypeParameterElement2> get typeParameters2 =>
_wrappedElement.typeParameters
.map((fragment) => (fragment as TypeParameterFragment).element)
.toList();
}

/// A concrete implementation of a [LocalVariableElement].
class LocalVariableElementImpl extends NonParameterVariableElementImpl
implements LocalVariableElement {
Expand Down Expand Up @@ -6294,6 +6493,52 @@ class LocalVariableElementImpl extends NonParameterVariableElementImpl
visitor.visitLocalVariableElement(this);
}

class LocalVariableElementImpl2 extends PromotableElementImpl2
with WrappedElementMixin
implements LocalVariableElement2 {
@override
final LocalVariableElementImpl _wrappedElement;

LocalVariableElementImpl2(this._wrappedElement);

@override
LocalVariableElement2 get baseElement => this;

@override
ExecutableFragment get enclosingFunction {
var element = _wrappedElement.enclosingElement3;
if (element is! ExecutableElementImpl) {
throw StateError(
'Expected to find ExecutableElement, but found ${element.runtimeType}');
}
return element;
}

@override
bool get hasImplicitType => _wrappedElement.hasImplicitType;

@override
bool get hasInitializer => _wrappedElement.hasInitializer;

@override
bool get isConst => _wrappedElement.isConst;

@override
bool get isFinal => _wrappedElement.isFinal;

@override
bool get isLate => _wrappedElement.isLate;

@override
bool get isStatic => _wrappedElement.isStatic;

@override
DartType get type => _wrappedElement.type;

@override
DartObject? computeConstantValue() => _wrappedElement.computeConstantValue();
}

/// Additional information for a macro generated fragment.
class MacroGeneratedLibraryFragment {
final String code;
Expand Down Expand Up @@ -8067,6 +8312,29 @@ class PatternVariableElementImpl extends LocalVariableElementImpl
}
}

class PatternVariableElementImpl2 extends LocalVariableElementImpl2
implements PatternVariableElement2 {
PatternVariableElementImpl2(super._wrappedElement);

@override
JoinPatternVariableElement2? get join2 =>
JoinPatternVariableElementImpl2(_wrappedElement.join!);

@override
PatternVariableElementImpl get _wrappedElement =>
super._wrappedElement as PatternVariableElementImpl;

static PatternVariableElement2 fromElement(
PatternVariableElementImpl element) {
if (element is JoinPatternVariableElementImpl) {
return JoinPatternVariableElementImpl2(element);
} else if (element is BindPatternVariableElementImpl) {
return BindPatternVariableElementImpl2(element);
}
return PatternVariableElementImpl2(element);
}
}

/// A concrete implementation of a [PrefixElement].
class PrefixElementImpl extends _ExistingElementImpl
implements PrefixElement, PrefixElement2 {
Expand Down Expand Up @@ -9700,6 +9968,28 @@ abstract class VariableElementImpl extends ElementImpl
abstract class VariableElementImpl2 extends ElementImpl2
implements VariableElement2 {}

mixin WrappedElementMixin implements ElementImpl2 {
@override
bool get isSynthetic => _wrappedElement.isSynthetic;

@override
ElementKind get kind => _wrappedElement.kind;

@override
LibraryElement2? get library2 => _wrappedElement.library2;

@override
String? get name => _wrappedElement.name;

ElementImpl get _wrappedElement;

@override
String displayString2(
{bool multiline = false, bool preferTypeAlias = false}) =>
_wrappedElement.displayString2(
multiline: multiline, preferTypeAlias: preferTypeAlias);
}

abstract class _ExistingElementImpl extends ElementImpl with _HasLibraryMixin {
_ExistingElementImpl(super.name, super.offset, {super.reference});
}
Expand Down
2 changes: 1 addition & 1 deletion tools/VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ CHANNEL dev
MAJOR 3
MINOR 6
PATCH 0
PRERELEASE 244
PRERELEASE 245
PRERELEASE_PATCH 0

0 comments on commit 675adb2

Please sign in to comment.