[analysis_server] AddExplicitCast for as

Bug: #49896
Change-Id: Iddbe616db0edadf57ad76637863ad7a29533a77b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260111
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
Ahmed Ashour 2022-10-10 21:26:15 +00:00 committed by Commit Queue
parent ecb992586a
commit 0a23e439e9
2 changed files with 16 additions and 2 deletions

View file

@ -11,6 +11,7 @@ import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/ast/extensions.dart';
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
import 'package:analyzer_plugin/utilities/range_factory.dart';
class AddExplicitCast extends CorrectionProducer {
@override
@ -66,7 +67,12 @@ class AddExplicitCast extends CorrectionProducer {
}
}
if (target is AsExpression) {
// TODO(brianwilkerson) Consider updating the right operand.
var type = target.type;
await builder.addDartFileEdit(file, (builder) {
builder.addReplacement(range.node(type), (builder) {
builder.writeType(toType);
});
});
return;
}

View file

@ -51,7 +51,15 @@ class A {}
class B {}
class C {}
''');
await assertNoFix();
await assertHasFix('''
f(A a) {
C c = a as C;
print(c);
}
class A {}
class B {}
class C {}
''');
}
Future<void> test_assignment_general() async {