Elements. Migrate AnalyzerConverter.
Change-Id: Ia3da05853e97e64899358bdc787c0226ba036bc6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403904
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer_plugin/CHANGELOG.md b/pkg/analyzer_plugin/CHANGELOG.md
index dbba541..d243c8a 100644
--- a/pkg/analyzer_plugin/CHANGELOG.md
+++ b/pkg/analyzer_plugin/CHANGELOG.md
@@ -1,6 +1,7 @@
## 0.13.0-dev
- Remove `elementName()` from `RangeFactory`. Use `fragmentName()` instead.
- Breaking changes to `DartFileEditBuilder` and `DartEditBuilder`.
+- Breaking changes to `AnalyzerConverter`.
## 0.12.0
- Breaking changes to `DartFileEditBuilder`: `convertFunctionFromSyncToAsync`
diff --git a/pkg/analyzer_plugin/analyzer_use_new_elements.txt b/pkg/analyzer_plugin/analyzer_use_new_elements.txt
index 3acbf58..3aa29d7 100644
--- a/pkg/analyzer_plugin/analyzer_use_new_elements.txt
+++ b/pkg/analyzer_plugin/analyzer_use_new_elements.txt
@@ -1,4 +1,2 @@
lib/src/utilities/completion/optype.dart
lib/src/utilities/navigation/navigation_dart.dart
-lib/utilities/analyzer_converter.dart
-test/utilities/analyzer_converter_test.dart
diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart
index a28b2b0..e0c6606 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/completion/suggestion_builder.dart
@@ -99,7 +99,7 @@
suggestion.docComplete = doc;
suggestion.docSummary = getDartDocSummary(doc);
- suggestion.element = converter.convertElement2(element);
+ suggestion.element = converter.convertElement(element);
var enclosingElement = element.enclosingElement2;
if (enclosingElement is ClassElement2) {
suggestion.declaringType = enclosingElement.displayName;
diff --git a/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart b/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart
index cd0bf4f..8f7b417 100644
--- a/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart
+++ b/pkg/analyzer_plugin/lib/utilities/analyzer_converter.dart
@@ -2,15 +2,13 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-import 'package:analyzer/dart/element/element.dart' as analyzer;
-import 'package:analyzer/dart/element/element2.dart' as engine;
+import 'package:analyzer/dart/element/element2.dart' as analyzer;
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/diagnostic/diagnostic.dart' as analyzer;
import 'package:analyzer/error/error.dart' as analyzer;
import 'package:analyzer/source/error_processor.dart' as analyzer;
import 'package:analyzer/source/line_info.dart' as analyzer;
import 'package:analyzer/source/source_range.dart' as analyzer;
-import 'package:analyzer/source/source_range.dart' as engine;
import 'package:analyzer/src/generated/engine.dart' as analyzer;
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
import 'package:analyzer_plugin/protocol/protocol_common.dart';
@@ -125,49 +123,26 @@
endLine: endLine, endColumn: endColumn));
}
- /// Convert the given [element] from the 'analyzer' package to an element
- /// defined by the plugin API.
- plugin.Element convertElement(analyzer.Element element) {
- var kind = _convertElementToElementKind(element);
- return plugin.Element(
- kind,
- element.displayName,
- plugin.Element.makeFlags(
- isPrivate: element.isPrivate,
- isDeprecated: element.hasDeprecated,
- isAbstract: _isAbstract(element),
- isConst: _isConst(element),
- isFinal: _isFinal(element),
- isStatic: _isStatic(element),
- ),
- location: locationFromElement(element),
- typeParameters: _getTypeParametersString(element),
- aliasedType: _getAliasedTypeString(element),
- parameters: _getParametersString(element),
- returnType: _getReturnTypeString(element),
- );
- }
-
- Element convertElement2(engine.Element2 element) {
- var kind = convertElementToElementKind2(element);
- var name = getElementDisplayName2(element);
- var elementTypeParameters = _getTypeParametersString2(element);
- var aliasedType = _getAliasedTypeString2(element);
- var elementParameters = _getParametersString2(element);
- var elementReturnType = _getReturnTypeString2(element);
+ Element convertElement(analyzer.Element2 element) {
+ var kind = convertElementToElementKind(element);
+ var name = getElementDisplayName(element);
+ var elementTypeParameters = _getTypeParametersString(element);
+ var aliasedType = _getAliasedTypeString(element);
+ var elementParameters = _getParametersString(element);
+ var elementReturnType = _getReturnTypeString(element);
return Element(
kind,
name,
Element.makeFlags(
isPrivate: element.isPrivate,
- isDeprecated: (element is engine.Annotatable) &&
- (element as engine.Annotatable).metadata2.hasDeprecated,
- isAbstract: _isAbstract2(element),
- isConst: _isConst2(element),
- isFinal: _isFinal2(element),
- isStatic: _isStatic2(element),
+ isDeprecated: (element is analyzer.Annotatable) &&
+ (element as analyzer.Annotatable).metadata2.hasDeprecated,
+ isAbstract: _isAbstract(element),
+ isConst: _isConst(element),
+ isFinal: _isFinal(element),
+ isStatic: _isStatic(element),
),
- location: newLocation_fromElement2(element),
+ location: newLocation_fromElement(element),
typeParameters: elementTypeParameters,
aliasedType: aliasedType,
parameters: elementParameters,
@@ -185,14 +160,14 @@
plugin.ElementKind convertElementKind(analyzer.ElementKind kind) =>
kind.toPluginElementKind;
- /// Return an [ElementKind] corresponding to the given [engine.Element2].
- ElementKind convertElementToElementKind2(engine.Element2 element) {
- if (element is engine.EnumElement2) {
+ /// Return an [ElementKind] corresponding to the given [analyzer.Element2].
+ ElementKind convertElementToElementKind(analyzer.Element2 element) {
+ if (element is analyzer.EnumElement2) {
return ElementKind.ENUM;
- } else if (element is engine.MixinElement2) {
+ } else if (element is analyzer.MixinElement2) {
return ElementKind.MIXIN;
}
- if (element is engine.FieldElement2 && element.isEnumConstant) {
+ if (element is analyzer.FieldElement2 && element.isEnumConstant) {
return ElementKind.ENUM_CONSTANT;
}
return convertElementKind(element.kind);
@@ -209,132 +184,50 @@
plugin.AnalysisErrorType convertErrorType(analyzer.ErrorType type) =>
plugin.AnalysisErrorType.values.byName(type.name);
- String getElementDisplayName2(engine.Element2 element) {
- if (element is engine.LibraryFragment) {
- return path.basename((element as engine.LibraryFragment).source.fullName);
+ String getElementDisplayName(analyzer.Element2 element) {
+ if (element is analyzer.LibraryFragment) {
+ return path
+ .basename((element as analyzer.LibraryFragment).source.fullName);
} else {
return element.displayName;
}
}
- /// Create a location based on an the given [element].
- // TODO(srawlins): Deprecate this.
- plugin.Location? locationFromElement(analyzer.Element? element,
- {int? offset, int? length}) =>
- element.toLocation(offset: offset, length: length);
-
- /// Create a Location based on an [engine.Element2].
- Location? newLocation_fromElement2(engine.Element2? element) {
+ /// Create a Location based on an [analyzer.Element2].
+ Location? newLocation_fromElement(analyzer.Element2? element) {
if (element == null) {
return null;
}
- if (element is engine.FormalParameterElement &&
+ if (element is analyzer.FormalParameterElement &&
element.enclosingElement2 == null) {
return null;
}
var fragment = element.firstFragment;
- var offset = fragment.nameOffset2 ?? 0;
+ var offset = fragment.nameOffset2 ?? -1;
var length = fragment.name2?.length ?? 0;
- var range = engine.SourceRange(offset, length);
- return _locationForArgs2(fragment, range);
+ var range = analyzer.SourceRange(offset, length);
+ return _locationForArgs(fragment, range);
}
- /// Convert the element kind of the [element] from the 'analyzer' package to
- /// an element kind defined by the plugin API.
- plugin.ElementKind _convertElementToElementKind(analyzer.Element element) {
- if (element is analyzer.EnumElement) {
- return plugin.ElementKind.ENUM;
- } else if (element is analyzer.FieldElement && element.isEnumConstant
- // MyEnum.values and MyEnum.one.index return isEnumConstant = true
- // so these additional checks are necessary.
- // TODO(danrubel): MyEnum.values is constant, but is a list
- // so should it return isEnumConstant = true?
- // MyEnum.one.index is final but *not* constant
- // so should it return isEnumConstant = true?
- // Or should we return ElementKind.ENUM_CONSTANT here
- // in either or both of these cases?
- ) {
- var type = element.type;
- if (type is InterfaceType && type.element == element.enclosingElement3) {
- return plugin.ElementKind.ENUM_CONSTANT;
- }
- }
- return convertElementKind(element.kind);
- }
-
- String? _getAliasedTypeString(analyzer.Element element) {
- if (element is analyzer.TypeAliasElement) {
+ String? _getAliasedTypeString(analyzer.Element2 element) {
+ if (element is analyzer.TypeAliasElement2) {
var aliasedType = element.aliasedType;
return aliasedType.getDisplayString();
}
return null;
}
- String? _getAliasedTypeString2(engine.Element2 element) {
- if (element is engine.TypeAliasElement2) {
- var aliasedType = element.aliasedType;
- return aliasedType.getDisplayString();
- }
- return null;
- }
-
- /// Return a textual representation of the parameters of the given [element],
- /// or `null` if the element does not have any parameters.
- String? _getParametersString(analyzer.Element element) {
+ String? _getParametersString(analyzer.Element2 element) {
// TODO(scheglov): expose the corresponding feature from ExecutableElement
- List<analyzer.ParameterElement> parameters;
- if (element is analyzer.ExecutableElement) {
+ List<analyzer.FormalParameterElement> parameters;
+ if (element is analyzer.ExecutableElement2) {
// valid getters don't have parameters
if (element.kind == analyzer.ElementKind.GETTER &&
- element.parameters.isEmpty) {
- return null;
- }
- parameters = element.parameters;
- } else if (element is analyzer.TypeAliasElement) {
- var aliasedElement = element.aliasedElement;
- if (aliasedElement is analyzer.GenericFunctionTypeElement) {
- parameters = aliasedElement.parameters;
- } else {
- return null;
- }
- } else {
- return null;
- }
- var buffer = StringBuffer();
- var closeOptionalString = '';
- buffer.write('(');
- for (var i = 0; i < parameters.length; i++) {
- var parameter = parameters[i];
- if (i > 0) {
- buffer.write(', ');
- }
- if (closeOptionalString.isEmpty) {
- if (parameter.isNamed) {
- buffer.write('{');
- closeOptionalString = '}';
- } else if (parameter.isOptionalPositional) {
- buffer.write('[');
- closeOptionalString = ']';
- }
- }
- parameter.appendToWithoutDelimiters(buffer);
- }
- buffer.write(closeOptionalString);
- buffer.write(')');
- return buffer.toString();
- }
-
- String? _getParametersString2(engine.Element2 element) {
- // TODO(scheglov): expose the corresponding feature from ExecutableElement
- List<engine.FormalParameterElement> parameters;
- if (element is engine.ExecutableElement2) {
- // valid getters don't have parameters
- if (element.kind == engine.ElementKind.GETTER &&
element.formalParameters.isEmpty) {
return null;
}
parameters = element.formalParameters.toList();
- } else if (element is engine.TypeAliasElement2) {
+ } else if (element is analyzer.TypeAliasElement2) {
var aliasedType = element.aliasedType;
if (aliasedType is FunctionType) {
parameters = aliasedType.formalParameters.toList();
@@ -373,37 +266,17 @@
return '($sb)';
}
- /// Return a textual representation of the return type of the given [element],
- /// or `null` if the element does not have a return type.
- String? _getReturnTypeString(analyzer.Element element) {
- if (element is analyzer.ExecutableElement) {
+ String? _getReturnTypeString(analyzer.Element2 element) {
+ if (element is analyzer.ExecutableElement2) {
if (element.kind == analyzer.ElementKind.SETTER) {
return null;
- }
- return element.returnType.getDisplayString();
- } else if (element is analyzer.VariableElement) {
- return element.type.getDisplayString();
- } else if (element is analyzer.TypeAliasElement) {
- var aliasedType = element.aliasedType;
- if (aliasedType is FunctionType) {
- var returnType = aliasedType.returnType;
- return returnType.getDisplayString();
- }
- }
- return null;
- }
-
- String? _getReturnTypeString2(engine.Element2 element) {
- if (element is engine.ExecutableElement2) {
- if (element.kind == engine.ElementKind.SETTER) {
- return null;
} else {
return element.returnType.getDisplayString();
}
- } else if (element is engine.VariableElement2) {
+ } else if (element is analyzer.VariableElement2) {
var type = element.type;
return type.getDisplayString();
- } else if (element is engine.TypeAliasElement2) {
+ } else if (element is analyzer.TypeAliasElement2) {
var aliasedType = element.aliasedType;
if (aliasedType is FunctionType) {
var returnType = aliasedType.returnType;
@@ -413,24 +286,11 @@
return null;
}
- /// Return a textual representation of the type parameters of the given
- /// [element], or `null` if the element does not have type parameters.
- String? _getTypeParametersString(analyzer.Element element) {
- if (element is analyzer.TypeParameterizedElement) {
- var typeParameters = element.typeParameters;
- if (typeParameters.isEmpty) {
- return null;
- }
- return '<${typeParameters.join(', ')}>';
- }
- return null;
- }
-
- String? _getTypeParametersString2(engine.Element2 element) {
- List<engine.TypeParameterElement2>? typeParameters;
- if (element is engine.InterfaceElement2) {
+ String? _getTypeParametersString(analyzer.Element2 element) {
+ List<analyzer.TypeParameterElement2>? typeParameters;
+ if (element is analyzer.InterfaceElement2) {
typeParameters = element.typeParameters2;
- } else if (element is engine.TypeAliasElement2) {
+ } else if (element is analyzer.TypeAliasElement2) {
typeParameters = element.typeParameters2;
}
if (typeParameters == null || typeParameters.isEmpty) {
@@ -439,90 +299,50 @@
return '<${typeParameters.join(', ')}>';
}
- bool _isAbstract(analyzer.Element element) {
- // TODO(scheglov): add isAbstract to Element API
- if (element is analyzer.ClassElement) {
- return element.isAbstract;
- } else if (element is analyzer.MethodElement) {
- return element.isAbstract;
- } else if (element is analyzer.PropertyAccessorElement) {
+ bool _isAbstract(analyzer.Element2 element) {
+ if (element is analyzer.ClassElement2) {
return element.isAbstract;
}
- return false;
- }
-
- bool _isAbstract2(engine.Element2 element) {
- if (element is engine.ClassElement2) {
+ if (element is analyzer.MethodElement2) {
return element.isAbstract;
}
- if (element is engine.MethodElement2) {
- return element.isAbstract;
- }
- if (element is engine.MixinElement2) {
+ if (element is analyzer.MixinElement2) {
return true;
}
return false;
}
- bool _isConst(analyzer.Element element) {
- // TODO(scheglov): add isConst to Element API
- if (element is analyzer.ConstructorElement) {
+ bool _isConst(analyzer.Element2 element) {
+ if (element is analyzer.ConstructorElement2) {
return element.isConst;
- } else if (element is analyzer.VariableElement) {
+ }
+ if (element is analyzer.VariableElement2) {
return element.isConst;
}
return false;
}
- bool _isConst2(engine.Element2 element) {
- if (element is engine.ConstructorElement2) {
- return element.isConst;
- }
- if (element is engine.VariableElement2) {
- return element.isConst;
- }
- return false;
- }
-
- bool _isFinal(analyzer.Element element) {
- // TODO(scheglov): add isFinal to Element API
- if (element is analyzer.VariableElement) {
+ bool _isFinal(analyzer.Element2 element) {
+ if (element is analyzer.VariableElement2) {
return element.isFinal;
}
return false;
}
- bool _isFinal2(engine.Element2 element) {
- if (element is engine.VariableElement2) {
- return element.isFinal;
- }
- return false;
- }
-
- bool _isStatic(analyzer.Element element) {
- // TODO(scheglov): add isStatic to Element API
- if (element is analyzer.ExecutableElement) {
- return element.isStatic;
- } else if (element is analyzer.PropertyInducingElement) {
+ bool _isStatic(analyzer.Element2 element) {
+ if (element is analyzer.ExecutableElement2) {
return element.isStatic;
}
- return false;
- }
-
- bool _isStatic2(engine.Element2 element) {
- if (element is engine.ExecutableElement2) {
- return element.isStatic;
- }
- if (element is engine.PropertyInducingElement2) {
+ if (element is analyzer.PropertyInducingElement2) {
return element.isStatic;
}
return false;
}
/// Creates a new [Location].
- Location? _locationForArgs2(
- engine.Fragment fragment,
- engine.SourceRange range,
+ Location? _locationForArgs(
+ analyzer.Fragment fragment,
+ analyzer.SourceRange range,
) {
var libraryFragment = fragment.libraryFragment;
if (libraryFragment == null) {
@@ -551,8 +371,8 @@
/// Sort required named parameters before optional ones.
int _preferRequiredParams2(
- engine.FormalParameterElement e1,
- engine.FormalParameterElement e2,
+ analyzer.FormalParameterElement e1,
+ analyzer.FormalParameterElement e2,
) {
var rank1 = (e1.isRequiredNamed || e1.metadata2.hasRequired)
? 0
@@ -569,63 +389,6 @@
}
// TODO(srawlins): Move this to a better location.
-extension ElementExtensions on analyzer.Element? {
- /// Return the compilation unit containing the given [element].
- analyzer.CompilationUnitElement? get _unitElement {
- var currentElement = this;
- for (;
- currentElement != null;
- currentElement = currentElement.enclosingElement3) {
- if (currentElement is analyzer.CompilationUnitElement) {
- return currentElement;
- } else if (currentElement is analyzer.LibraryElement) {
- return currentElement.definingCompilationUnit;
- }
- }
- return null;
- }
-
- /// Create a location based on this element.
- plugin.Location? toLocation({int? offset, int? length}) {
- var self = this;
- if (self == null || self.source == null) {
- return null;
- }
- offset ??= self.nameOffset;
- length ??= self.nameLength;
- if (self is analyzer.CompilationUnitElement ||
- (self is analyzer.LibraryElement && offset < 0)) {
- offset = 0;
- length = 0;
- }
- return _locationForArgs(
- self._unitElement, analyzer.SourceRange(offset, length));
- }
-
- /// Create and return a location within the given [unitElement] at the given
- /// [range].
- plugin.Location? _locationForArgs(
- analyzer.CompilationUnitElement? unitElement,
- analyzer.SourceRange range) {
- if (unitElement == null) {
- return null;
- }
-
- var lineInfo = unitElement.lineInfo;
- var offsetLocation = lineInfo.getLocation(range.offset);
- var endLocation = lineInfo.getLocation(range.offset + range.length);
- var startLine = offsetLocation.lineNumber;
- var startColumn = offsetLocation.columnNumber;
- var endLine = endLocation.lineNumber;
- var endColumn = endLocation.columnNumber;
-
- return plugin.Location(unitElement.source.fullName, range.offset,
- range.length, startLine, startColumn,
- endLine: endLine, endColumn: endColumn);
- }
-}
-
-// TODO(srawlins): Move this to a better location.
extension ElementKindExtensions on analyzer.ElementKind {
static const _kindMap = {
analyzer.ElementKind.CLASS: plugin.ElementKind.CLASS,
diff --git a/pkg/analyzer_plugin/test/utilities/analyzer_converter_test.dart b/pkg/analyzer_plugin/test/utilities/analyzer_converter_test.dart
index 5ac1d2e..eda8aec 100644
--- a/pkg/analyzer_plugin/test/utilities/analyzer_converter_test.dart
+++ b/pkg/analyzer_plugin/test/utilities/analyzer_converter_test.dart
@@ -55,7 +55,7 @@
var contextMessages = <analyzer.DiagnosticMessageImpl>[];
await resolveTestCode('');
- var testSource = result.unit.declaredElement!.source;
+ var testSource = result.unit.declaredFragment!.source;
if (contextMessage != null) {
contextMessages.add(
@@ -213,7 +213,7 @@
abstract class _A {}
class B<K, V> {}''');
{
- var engineElement = findElement.class_('_A');
+ var engineElement = findElement2.class_('_A');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.CLASS);
@@ -235,7 +235,7 @@
plugin.Element.FLAG_PRIVATE);
}
{
- var engineElement = findElement.class_('B');
+ var engineElement = findElement2.class_('B');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.CLASS);
@@ -250,7 +250,7 @@
class A {
const A.myConstructor(int a, [String? b]);
}''');
- var engineElement = findElement.constructor('myConstructor');
+ var engineElement = findElement2.constructor('myConstructor');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.CONSTRUCTOR);
@@ -270,7 +270,7 @@
}
void test_convertElement_dynamic() {
- var engineElement = analyzer.DynamicElementImpl.instance;
+ var engineElement = analyzer.DynamicElementImpl2.instance;
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.UNKNOWN);
@@ -287,8 +287,8 @@
enum _E1 { one, two }
enum E2 { three, four }''');
{
- var engineElement = findElement.enum_('_E1');
- expect(engineElement.hasDeprecated, isTrue);
+ var engineElement = findElement2.enum_('_E1');
+ expect(engineElement.metadata2.hasDeprecated, isTrue);
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.ENUM);
@@ -305,11 +305,13 @@
expect(element.parameters, isNull);
expect(
element.flags,
- (engineElement.hasDeprecated ? plugin.Element.FLAG_DEPRECATED : 0) |
+ (engineElement.metadata2.hasDeprecated
+ ? plugin.Element.FLAG_DEPRECATED
+ : 0) |
plugin.Element.FLAG_PRIVATE);
}
{
- var engineElement = findElement.enum_('E2');
+ var engineElement = findElement2.enum_('E2');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.ENUM);
@@ -325,7 +327,7 @@
enum _E1 { one, two }
enum E2 { three, four }''');
{
- var engineElement = findElement.field('one');
+ var engineElement = findElement2.field('one');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.ENUM_CONSTANT);
@@ -349,7 +351,7 @@
plugin.Element.FLAG_CONST | plugin.Element.FLAG_STATIC);
}
{
- var engineElement = findElement.field('three');
+ var engineElement = findElement2.field('three');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.ENUM_CONSTANT);
@@ -368,7 +370,7 @@
plugin.Element.FLAG_CONST | plugin.Element.FLAG_STATIC);
}
{
- var engineElement = findElement.field('values', of: 'E2');
+ var engineElement = findElement2.field('values', of: 'E2');
// create notification Element
var element = converter.convertElement(engineElement);
@@ -394,7 +396,7 @@
class A {
static const myField = 42;
}''');
- var engineElement = findElement.field('myField');
+ var engineElement = findElement2.field('myField');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.FIELD);
@@ -417,7 +419,7 @@
await resolveTestCode('''
typedef int F<T>(String x);
''');
- var engineElement = findElement.typeAlias('F');
+ var engineElement = findElement2.typeAlias('F');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.TYPE_ALIAS);
@@ -441,7 +443,7 @@
class A {
int get myGetter => 42;
}''');
- var engineElement = findElement.getter('myGetter');
+ var engineElement = findElement2.getter('myGetter');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.GETTER);
@@ -467,7 +469,7 @@
break myLabel;
}
}''');
- var engineElement = findElement.label('myLabel');
+ var engineElement = findElement2.label('myLabel');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.LABEL);
@@ -492,7 +494,7 @@
return [];
}
}''');
- var engineElement = findElement.method('myMethod');
+ var engineElement = findElement2.method('myMethod');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.METHOD);
@@ -515,7 +517,7 @@
class A {
set mySetter(String x) {}
}''');
- var engineElement = findElement.setter('mySetter');
+ var engineElement = findElement2.setter('mySetter');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.SETTER);
@@ -537,7 +539,7 @@
await resolveTestCode('''
typedef F<T> = int Function(String x);
''');
- var engineElement = findElement.typeAlias('F');
+ var engineElement = findElement2.typeAlias('F');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.TYPE_ALIAS);
@@ -560,7 +562,7 @@
await resolveTestCode('''
typedef A<T> = Map<int, T>;
''');
- var engineElement = findElement.typeAlias('A');
+ var engineElement = findElement2.typeAlias('A');
// create notification Element
var element = converter.convertElement(engineElement);
expect(element.kind, plugin.ElementKind.TYPE_ALIAS);