diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart index 35927139a33..e9df7e2acc0 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/add_explicit_cast.dart @@ -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; } diff --git a/pkg/analysis_server/test/src/services/correction/fix/add_explicit_cast_test.dart b/pkg/analysis_server/test/src/services/correction/fix/add_explicit_cast_test.dart index a1527568667..a8a06d46006 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/add_explicit_cast_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/add_explicit_cast_test.dart @@ -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 test_assignment_general() async {