Version 2.11.0-257.0.dev
Merge commit 'e20415403a976391defe6e3c9da1fd681a30f884' into 'dev'
diff --git a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
index d8b4f69..a69c96e 100644
--- a/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
+++ b/pkg/nnbd_migration/lib/src/front_end/info_builder.dart
@@ -336,11 +336,12 @@
var sourceOffsets = changes.keys.toList();
sourceOffsets.sort();
var offset = 0;
- var lastSourceOffset = 0;
- for (var sourceOffset in sourceOffsets) {
- offset += sourceOffset - lastSourceOffset;
- lastSourceOffset = sourceOffset;
- var changesForSourceOffset = changes[sourceOffset];
+ var sourceOffset = 0;
+ for (var nextSourceOffset in sourceOffsets) {
+ var changesForSourceOffset = changes[nextSourceOffset];
+ var unchangedTextLength = nextSourceOffset - sourceOffset;
+ offset += unchangedTextLength;
+ sourceOffset += unchangedTextLength;
for (var edit in changesForSourceOffset) {
var length = edit.length;
var replacement = edit.replacement;
@@ -400,7 +401,8 @@
'informative: $edit');
}
}
- offset += replacement.length;
+ sourceOffset += length;
+ offset += length + replacement.length;
}
}
diff --git a/pkg/nnbd_migration/test/front_end/info_builder_test.dart b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
index 67a796f..cee694a 100644
--- a/pkg/nnbd_migration/test/front_end/info_builder_test.dart
+++ b/pkg/nnbd_migration/test/front_end/info_builder_test.dart
@@ -886,6 +886,26 @@
kind: NullabilityFixKind.checkExpression);
}
+ Future<void> test_method_name_change() async {
+ addPackageFile('collection', 'collection.dart', '');
+ var content = '''
+import 'package:collection/collection.dart';
+
+int f(List<int> values, int/*?*/ x)
+ => values.firstWhere((i) => (i + x).isEven,
+ orElse: () => null);
+''';
+ var migratedContent = '''
+import 'package:collection/collection.dart';
+
+int? f(List<int > values, int/*?*/ x)
+ => values.firstWherefirstWhereOrNull((i) => (i + x!).isEven,
+ orElse: () => null);
+''';
+ await buildInfoForSingleTestFile(content,
+ migratedContent: migratedContent, removeViaComments: false);
+ }
+
void test_nullAwareAssignment_remove() async {
var unit = await buildInfoForSingleTestFile('''
int f(int/*!*/ x, int y) => x ??= y;
diff --git a/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart b/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart
index 3b31e90..70cf296 100644
--- a/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart
+++ b/pkg/nnbd_migration/test/front_end/nnbd_migration_test_base.dart
@@ -207,7 +207,8 @@
permissive: false,
instrumentation: instrumentationListener,
removeViaComments: removeViaComments,
- warnOnWeakCode: warnOnWeakCode);
+ warnOnWeakCode: warnOnWeakCode,
+ transformWhereOrNull: true);
Future<void> _forEachPath(
void Function(ResolvedUnitResult) callback) async {
for (var testPath in testPaths) {
diff --git a/tools/VERSION b/tools/VERSION
index 7845415..c0f5c5a 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 11
PATCH 0
-PRERELEASE 256
+PRERELEASE 257
PRERELEASE_PATCH 0
\ No newline at end of file