Elements. Changes for google3.

Change-Id: Ia0215da239c3948ccd242e583b79df0085109597
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/402400
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov
2024-12-25 20:10:49 -08:00
committed by Commit Queue
parent 61f1d69107
commit c01fe77e57
6 changed files with 44 additions and 5 deletions
@@ -513,7 +513,7 @@ abstract class RenameRefactoring implements Refactoring {
return RenameTypeParameterRefactoringImpl(
workspace,
sessionHelper,
element.asElement2 as TypeParameterElement2,
element.asElement2,
);
}
if (enclosingElement is InterfaceElement) {
+2 -2
View File
@@ -1619,7 +1619,7 @@ abstract class LibraryElement2 implements Element2, Annotatable {
/// An `export` directive within a library fragment.
///
/// Clients may not extend, implement or mix-in this class.
abstract class LibraryExport {
abstract class LibraryExport implements Annotatable {
/// The combinators that were specified as part of the `export` directive.
///
/// The combinators are in the order in which they were specified.
@@ -1718,7 +1718,7 @@ abstract class LibraryFragment implements Fragment, Annotatable {
/// An `import` directive within a library fragment.
///
/// Clients may not extend, implement or mix-in this class.
abstract class LibraryImport {
abstract class LibraryImport implements Annotatable {
/// The combinators that were specified as part of the `import` directive.
///
/// The combinators are in the order in which they were specified.
@@ -223,6 +223,9 @@ abstract class TypeProvider {
/// Return `true` if [element] cannot be extended, implemented, or mixed in.
bool isNonSubtypableClass(InterfaceElement element);
/// Return `true` if [element] cannot be extended, implemented, or mixed in.
bool isNonSubtypableClass2(InterfaceElement2 element);
/// Return 'true' if [id] is the name of a getter on the `Object` type.
bool isObjectGetter(String id);
@@ -3868,6 +3868,13 @@ abstract class ExecutableElementImpl2 extends FunctionTypedElementImpl2
@override
ExecutableElement2 get baseElement => this;
@override
List<Element2> get children2 => [
...super.children2,
...typeParameters2,
...formalParameters,
];
bool get invokesSuperSelf {
var firstFragment = this.firstFragment as ExecutableElementImpl;
return firstFragment.hasModifier(Modifier.INVOKES_SUPER_SELF);
@@ -533,9 +533,14 @@ class TypeProviderImpl extends TypeProviderBase {
@override
bool isNonSubtypableClass(InterfaceElement element) {
var name = element.name;
return isNonSubtypableClass2(element.asElement2);
}
@override
bool isNonSubtypableClass2(InterfaceElement2 element) {
var name = element.name3;
if (_nonSubtypableClassNames.contains(name)) {
var libraryUriStr = element.library.source.uri.toString();
var libraryUriStr = element.library2.uri.toString();
var ofLibrary = _nonSubtypableClassMap[libraryUriStr];
return ofLibrary != null && ofLibrary.contains(name);
}
@@ -46,6 +46,9 @@ extension CompilationUnitElementExtension on CompilationUnitElement {
extension ConstructorElement2Extension on ConstructorElement2 {
ConstructorElement get asElement {
if (this case ConstructorMember member) {
return member;
}
return baseElement.firstFragment as ConstructorElement;
}
}
@@ -278,6 +281,9 @@ extension EnumElementExtension on EnumElement {
extension ExecutableElement2Extension on ExecutableElement2 {
ExecutableElement get asElement {
if (this case ExecutableMember member) {
return member;
}
return firstFragment as ExecutableElement;
}
}
@@ -324,6 +330,9 @@ extension ExtensionTypeElement2Extension on ExtensionTypeElement2 {
extension FieldElement2Extension on FieldElement2 {
FieldElement get asElement {
if (this case FieldMember member) {
return member;
}
return firstFragment as FieldElement;
}
}
@@ -340,6 +349,9 @@ extension FieldElementExtension on FieldElement {
extension FormalParameterExtension on FormalParameterElement {
ParameterElement get asElement {
if (this case ParameterMember member) {
return member;
}
return firstFragment as ParameterElement;
}
@@ -437,6 +449,9 @@ extension ListOfTypeParameterElementExtension on List<TypeParameterElement> {
extension MethodElement2Extension on MethodElement2 {
MethodElement get asElement {
if (this case MethodMember member) {
return member;
}
return baseElement.firstFragment as MethodElement;
}
}
@@ -491,6 +506,9 @@ extension PrefixElementExtension on PrefixElement {
extension PropertyAccessorElement2Extension on PropertyAccessorElement2 {
PropertyAccessorElement get asElement {
if (this case PropertyAccessorMember member) {
return member;
}
return firstFragment as PropertyAccessorElement;
}
}
@@ -540,3 +558,9 @@ extension TypeParameterElement2Extension on TypeParameterElement2 {
return firstFragment as TypeParameterElement;
}
}
extension TypeParameterElementExtension on TypeParameterElement {
TypeParameterElement2 get asElement2 {
return (this as TypeParameterElementImpl).element;
}
}