Skip to content

Commit

Permalink
Elements. Migrate CreateSetter.
Browse files Browse the repository at this point in the history
Change-Id: Iddb1cfe16433d4c1e4c42b35e4ecac81e59fcea6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/387400
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
  • Loading branch information
scheglov authored and Commit Queue committed Sep 30, 2024
1 parent 9e663d2 commit a67e33e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
1 change: 1 addition & 0 deletions pkg/analysis_server/analyzer_use_new_elements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ lib/src/services/correction/dart/create_local_variable.dart
lib/src/services/correction/dart/create_method_or_function.dart
lib/src/services/correction/dart/create_no_such_method.dart
lib/src/services/correction/dart/create_parameter.dart
lib/src/services/correction/dart/create_setter.dart
lib/src/services/correction/dart/data_driven.dart
lib/src/services/correction/dart/encapsulate_field.dart
lib/src/services/correction/dart/exchange_operands.dart
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:analysis_server/src/utilities/extensions/ast.dart';
import 'package:analysis_server_plugin/edit/dart/correction_producer.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
Expand Down Expand Up @@ -49,44 +50,41 @@ class CreateSetter extends ResolvedCorrectionProducer {
}
// prepare target element
var staticModifier = false;
Element? targetElement;
InstanceElement2? targetElement;
if (target is ExtensionOverride) {
targetElement = target.element;
} else if (target is Identifier &&
target.staticElement is ExtensionElement) {
targetElement = target.staticElement;
targetElement = target.element2;
} else if (target is Identifier && target.element is ExtensionElement2) {
targetElement = target.element as ExtensionElement2;
staticModifier = true;
} else if (target != null) {
// prepare target interface type
var targetType = target.staticType;
if (targetType is! InterfaceType) {
return;
}
targetElement = targetType.element;
targetElement = targetType.element3;
// maybe static
if (target is Identifier) {
var targetIdentifier = target;
var targetElement = targetIdentifier.staticElement;
var targetElement = targetIdentifier.element;
staticModifier = targetElement?.kind == ElementKind.CLASS;
}
} else {
targetElement =
node.enclosingInterfaceElement ?? node.enclosingExtensionElement;
node.enclosingInterfaceElement2 ?? node.enclosingExtensionElement2;
if (targetElement == null) {
return;
}
staticModifier = inStaticContext;
}
if (targetElement == null) {
return;
}
var targetSource = targetElement.source;
if (targetSource == null || targetElement.library?.isInSdk == true) {
var targetFragment = targetElement.firstFragment;
var targetSource = targetFragment.libraryFragment.source;
if (targetElement.library2.isInSdk == true) {
return;
}
// prepare target declaration
var targetDeclarationResult =
await sessionHelper.getElementDeclaration(targetElement);
await sessionHelper.getElementDeclaration2(targetFragment);
if (targetDeclarationResult == null) {
return;
}
Expand Down

0 comments on commit a67e33e

Please sign in to comment.