Skip to content

Commit e5dd92c

Browse files
committed
Version 2.12.0-259.8.beta
* Cherry-pick bc5952d to beta * Cherry-pick f5743e6 to beta * Cherry-pick e0cd4b3 to beta * Cherry-pick 27deca1 to beta * Cherry-pick 0c3696d to beta * Cherry-pick 53f5179 to beta * Cherry-pick refs/changes/00/182200/1 to beta
2 parents bbe83c3 + 849ebaf commit e5dd92c

File tree

116 files changed

+1231
-4575
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+1231
-4575
lines changed

pkg/_js_interop_checks/lib/js_interop_checks.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ class JsInteropChecks extends RecursiveVisitor<void> {
3030
bool _classHasAnonymousAnnotation = false;
3131
bool _libraryHasJSAnnotation = false;
3232
bool _libraryIsGlobalNamespace = false;
33+
// TODO(srujzs): This currently disables this check always. This check should
34+
// instead only be disabled up until a given language version.
35+
bool _disableJSNativeClassConflict = true;
3336

3437
JsInteropChecks(
3538
this._coreTypes, this._diagnosticsReporter, this._nativeClasses);
@@ -83,7 +86,8 @@ class JsInteropChecks extends RecursiveVisitor<void> {
8386
cls.location.file);
8487
}
8588
}
86-
if (_classHasJSAnnotation &&
89+
if (!_disableJSNativeClassConflict &&
90+
_classHasJSAnnotation &&
8791
!_classHasAnonymousAnnotation &&
8892
_libraryIsGlobalNamespace) {
8993
var jsClass = getJSName(cls);

pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class ModifyParameters extends Change<_Data> {
6060
var arguments = argumentList.arguments;
6161
var argumentCount = arguments.length;
6262
var templateContext = TemplateContext(argumentList.parent, fix.utils);
63-
var newNamed = <AddParameter>[];
63+
6464
var indexToNewArgumentMap = <int, AddParameter>{};
6565
var argumentsToInsert = <int>[];
6666
var argumentsToDelete = <int>[];
@@ -69,16 +69,14 @@ class ModifyParameters extends Change<_Data> {
6969
if (modification is AddParameter) {
7070
var index = modification.index;
7171
indexToNewArgumentMap[index] = modification;
72-
if (modification.isPositional) {
72+
if (modification.isPositional || modification.isRequired) {
7373
argumentsToInsert.add(index);
74-
} else if (modification.isRequired) {
75-
newNamed.add(modification);
7674
} else {
7775
var requiredIfCondition =
7876
modification.argumentValue?.requiredIfCondition;
7977
if (requiredIfCondition != null &&
8078
requiredIfCondition.evaluateIn(templateContext)) {
81-
newNamed.add(modification);
79+
argumentsToInsert.add(index);
8280
}
8381
}
8482
} else if (modification is RemoveParameter) {
@@ -94,7 +92,6 @@ class ModifyParameters extends Change<_Data> {
9492
}
9593
}
9694
argumentsToInsert.sort();
97-
newNamed.sort((first, second) => first.name.compareTo(second.name));
9895

9996
/// Write to the [builder] the argument associated with a single
10097
/// [parameter].
@@ -185,39 +182,21 @@ class ModifyParameters extends Change<_Data> {
185182
var insertionRange = insertionRanges[nextInsertionRange];
186183
var lower = insertionRange.lower;
187184
var upper = insertionRange.upper;
188-
while (upper >= lower && !indexToNewArgumentMap[upper].isRequired) {
185+
var parameter = indexToNewArgumentMap[upper];
186+
while (upper >= lower &&
187+
(parameter.isPositional && !parameter.isRequired)) {
189188
upper--;
190189
}
191190
if (upper >= lower) {
192191
builder.addInsertion(offset, (builder) {
193-
writeInsertionRange(builder, _IndexRange(lower, upper), true);
192+
writeInsertionRange(builder, _IndexRange(lower, upper),
193+
nextRemaining > 0 || insertionCount > 0);
194194
});
195195
}
196196
nextInsertionRange++;
197197
}
198198
}
199199
//
200-
// Insert arguments for required named parameters.
201-
//
202-
if (newNamed.isNotEmpty) {
203-
int offset;
204-
var needsInitialComma = false;
205-
if (remainingArguments.isEmpty && argumentsToInsert.isEmpty) {
206-
offset = argumentList.rightParenthesis.offset;
207-
} else {
208-
offset = arguments[arguments.length - 1].end;
209-
needsInitialComma = true;
210-
}
211-
builder.addInsertion(offset, (builder) {
212-
for (var i = 0; i < newNamed.length; i++) {
213-
if (i > 0 || needsInitialComma) {
214-
builder.write(', ');
215-
}
216-
writeArgument(builder, newNamed[i]);
217-
}
218-
});
219-
}
220-
//
221200
// The remaining deletion ranges are now ready to be removed.
222201
//
223202
for (var subRange in deletionRanges) {

pkg/analysis_server/lib/src/services/refactoring/extract_widget.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -428,8 +428,12 @@ class ExtractWidgetRefactoringImpl extends RefactoringImpl
428428
// Add parameters for fields, local, and method parameters.
429429
for (var parameter in _parameters) {
430430
builder.write(' ');
431-
builder.write('@');
432-
builder.writeReference(accessorRequired);
431+
if (_isNonNullable) {
432+
builder.write('required');
433+
} else {
434+
builder.write('@');
435+
builder.writeReference(accessorRequired);
436+
}
433437
builder.write(' ');
434438
if (parameter.constructorName != parameter.name) {
435439
builder.writeType(parameter.type);

pkg/analysis_server/test/services/refactoring/abstract_refactoring.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import 'package:analyzer_plugin/protocol/protocol_common.dart'
1212
show RefactoringProblemSeverity, SourceChange, SourceEdit;
1313
import 'package:test/test.dart';
1414

15+
import '../../abstract_context.dart';
1516
import '../../abstract_single_unit.dart';
1617

1718
int findIdentifierLength(String search) {
@@ -29,7 +30,8 @@ int findIdentifierLength(String search) {
2930
}
3031

3132
/// The base class for all [Refactoring] tests.
32-
abstract class RefactoringTest extends AbstractSingleUnitTest {
33+
abstract class RefactoringTest extends AbstractSingleUnitTest
34+
with WithNonFunctionTypeAliasesMixin {
3335
SearchEngine searchEngine;
3436

3537
SourceChange refactoringChange;

pkg/analysis_server/test/services/refactoring/convert_getter_to_method_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class C extends B {
5656
class D extends A {
5757
int get test => 4;
5858
}
59-
main(A a, B b, C c, D d) {
59+
void f(A a, B b, C c, D d) {
6060
var va = a.test;
6161
var vb = b.test;
6262
var vc = c.test;
@@ -79,7 +79,7 @@ class C extends B {
7979
class D extends A {
8080
int test() => 4;
8181
}
82-
main(A a, B b, C c, D d) {
82+
void f(A a, B b, C c, D d) {
8383
var va = a.test();
8484
var vb = b.test();
8585
var vc = c.test();
@@ -99,7 +99,7 @@ import 'other.dart';
9999
class B extends A {
100100
int get test => 2;
101101
}
102-
main(A a, B b) {
102+
void f(A a, B b) {
103103
a.test;
104104
b.test;
105105
}
@@ -112,7 +112,7 @@ import 'other.dart';
112112
class B extends A {
113113
int test() => 2;
114114
}
115-
main(A a, B b) {
115+
void f(A a, B b) {
116116
a.test();
117117
b.test();
118118
}

pkg/analysis_server/test/services/refactoring/convert_method_to_getter_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class C extends B {
5555
class D extends A {
5656
int test() => 4;
5757
}
58-
main(A a, B b, C c, D d) {
58+
void f(A a, B b, C c, D d) {
5959
var va = a.test();
6060
var vb = b.test();
6161
var vc = c.test();
@@ -78,7 +78,7 @@ class C extends B {
7878
class D extends A {
7979
int get test => 4;
8080
}
81-
main(A a, B b, C c, D d) {
81+
void f(A a, B b, C c, D d) {
8282
var va = a.test;
8383
var vb = b.test;
8484
var vc = c.test;
@@ -98,7 +98,7 @@ import 'other.dart';
9898
class B extends A {
9999
int test() => 2;
100100
}
101-
main(A a, B b) {
101+
void f(A a, B b) {
102102
a.test();
103103
b.test();
104104
}
@@ -111,7 +111,7 @@ import 'other.dart';
111111
class B extends A {
112112
int get test => 2;
113113
}
114-
main(A a, B b) {
114+
void f(A a, B b) {
115115
a.test;
116116
b.test;
117117
}

pkg/analysis_server/test/services/refactoring/extract_local_test.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ main() {
245245
await indexTestUnit('''
246246
main() {
247247
int a = 1 + 2;
248-
Res b = null;
248+
Res? b = null;
249249
}
250250
251251
class Res {}
@@ -698,7 +698,7 @@ main() {
698698
Future<void> test_guessNames_singleExpression() async {
699699
await indexTestUnit('''
700700
class TreeItem {}
701-
TreeItem getSelectedItem() => null;
701+
TreeItem? getSelectedItem() => null;
702702
process(my) {}
703703
main() {
704704
process(getSelectedItem()); // marker
@@ -760,30 +760,30 @@ main() {
760760

761761
Future<void> test_occurrences_differentName_samePrefix() async {
762762
await indexTestUnit('''
763-
void main(A a) {
763+
void f(A a) {
764764
if (a.foo != 1) {
765765
} else if (a.foo2 != 2) {
766766
}
767767
}
768768
769769
class A {
770-
int foo;
771-
int foo2;
770+
int? foo;
771+
int? foo2;
772772
}
773773
''');
774774
_createRefactoringWithSuffix('a.foo', ' != 1');
775775
// apply refactoring
776776
await _assertSuccessfulRefactoring('''
777-
void main(A a) {
777+
void f(A a) {
778778
var res = a.foo;
779779
if (res != 1) {
780780
} else if (a.foo2 != 2) {
781781
}
782782
}
783783
784784
class A {
785-
int foo;
786-
int foo2;
785+
int? foo;
786+
int? foo2;
787787
}
788788
''');
789789
}
@@ -1068,7 +1068,7 @@ main() {
10681068
Future<void> test_singleExpression_inExpressionBody_ofFunction() async {
10691069
await indexTestUnit('''
10701070
foo(Point p) => p.x * p.x + p.y * p.y;
1071-
class Point {int x; int y;}
1071+
class Point {int x = 0; int y = 0;}
10721072
''');
10731073
_createRefactoringForString('p.x');
10741074
// apply refactoring
@@ -1077,7 +1077,7 @@ foo(Point p) {
10771077
var res = p.x;
10781078
return res * res + p.y * p.y;
10791079
}
1080-
class Point {int x; int y;}
1080+
class Point {int x = 0; int y = 0;}
10811081
''');
10821082
_assertSingleLinkedEditGroup(
10831083
length: 3, offsets: [21, 41, 47], names: ['x', 'i']);
@@ -1088,7 +1088,7 @@ class Point {int x; int y;}
10881088
class A {
10891089
foo(Point p) => p.x * p.x + p.y * p.y;
10901090
}
1091-
class Point {int x; int y;}
1091+
class Point {int x = 0; int y = 0;}
10921092
''');
10931093
_createRefactoringForString('p.x');
10941094
// apply refactoring
@@ -1099,15 +1099,15 @@ class A {
10991099
return res * res + p.y * p.y;
11001100
}
11011101
}
1102-
class Point {int x; int y;}
1102+
class Point {int x = 0; int y = 0;}
11031103
''');
11041104
_assertSingleLinkedEditGroup(
11051105
length: 3, offsets: [35, 57, 63], names: ['x', 'i']);
11061106
}
11071107

11081108
Future<void> test_singleExpression_inIfElseIf() async {
11091109
await indexTestUnit('''
1110-
main(int p) {
1110+
void f(int p) {
11111111
if (p == 1) {
11121112
print(1);
11131113
} else if (p == 2) {
@@ -1118,7 +1118,7 @@ main(int p) {
11181118
_createRefactoringForString('2');
11191119
// apply refactoring
11201120
return _assertSuccessfulRefactoring('''
1121-
main(int p) {
1121+
void f(int p) {
11221122
var res = 2;
11231123
if (p == 1) {
11241124
print(1);

0 commit comments

Comments
 (0)