mirror of
https://github.com/dart-lang/sdk
synced 2024-10-03 21:21:32 +00:00
Revert "Revert "Don't do implicit new/const code generation with --preview-dart-2 enabled.""
This reverts commit e5ed23fdb5
.
R=brianwilkerson@google.com
Change-Id: Ida33856e965f06f773025f3c625d6ab3bace80a8
Reviewed-on: https://dart-review.googlesource.com/49280
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
e5d20a7749
commit
4089111540
|
@ -67,13 +67,6 @@ class _SuggestionBuilder extends GeneralizingElementVisitor {
|
|||
// ignored
|
||||
}
|
||||
|
||||
@override
|
||||
visitConstructorElement(ConstructorElement element) {
|
||||
if (element.context.analysisOptions.previewDart2) {
|
||||
_addSuggestion(element);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
visitFieldElement(FieldElement element) {
|
||||
if (element.isStatic) {
|
||||
|
|
|
@ -1676,9 +1676,7 @@ class AssistProcessor {
|
|||
DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(widgetExpr), (DartEditBuilder builder) {
|
||||
if (!driver.analysisOptions.previewDart2) {
|
||||
builder.write('new ');
|
||||
}
|
||||
builder.write('new ');
|
||||
if (parentClassElement == null) {
|
||||
builder.addSimpleLinkedEdit('WIDGET', 'widget');
|
||||
} else {
|
||||
|
@ -1757,9 +1755,7 @@ class AssistProcessor {
|
|||
DartChangeBuilder changeBuilder = new DartChangeBuilder(session);
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(selectedRange, (DartEditBuilder builder) {
|
||||
if (!driver.analysisOptions.previewDart2) {
|
||||
builder.write('new ');
|
||||
}
|
||||
builder.write('new ');
|
||||
builder.writeType(parentClassElement.type);
|
||||
builder.write('(');
|
||||
|
||||
|
|
|
@ -732,17 +732,21 @@ main() {
|
|||
<String>["1+fooConst", "1-fooNotConst", "1-bar"],
|
||||
failingTests: '1');
|
||||
|
||||
buildTests('testCompletion_annotation_type', '''
|
||||
buildTests(
|
||||
'testCompletion_annotation_type',
|
||||
'''
|
||||
class AAA {
|
||||
const AAA({int a, int b});
|
||||
const AAA.nnn(int c, int d);
|
||||
}
|
||||
@AAA!1
|
||||
main() {
|
||||
}''', <String>[
|
||||
"1+AAA" /*":" + ProposalKind.CONSTRUCTOR*/,
|
||||
"1+AAA.nnn" /*":" + ProposalKind.CONSTRUCTOR*/
|
||||
]);
|
||||
}''',
|
||||
<String>[
|
||||
"1+AAA" /*":" + ProposalKind.CONSTRUCTOR*/,
|
||||
"1+AAA.nnn" /*":" + ProposalKind.CONSTRUCTOR*/
|
||||
],
|
||||
failingTests: '1');
|
||||
|
||||
buildTests('testCompletion_annotation_type_inClass_withoutMember', '''
|
||||
class AAA {
|
||||
|
|
|
@ -619,11 +619,8 @@ main() {
|
|||
assertHasResult(CompletionSuggestionKind.INVOCATION, 'A',
|
||||
elementKind: ElementKind.CLASS);
|
||||
|
||||
// Both constructors - default and named, are suggested.
|
||||
assertHasResult(CompletionSuggestionKind.INVOCATION, 'A',
|
||||
elementKind: ElementKind.CONSTRUCTOR);
|
||||
assertHasResult(CompletionSuggestionKind.INVOCATION, 'A.named',
|
||||
elementKind: ElementKind.CONSTRUCTOR);
|
||||
// No constructors suggested.
|
||||
assertNoResult('A.named');
|
||||
}
|
||||
|
||||
test_local_named_constructor() {
|
||||
|
|
|
@ -2449,12 +2449,12 @@ main() {
|
|||
await computeSuggestions();
|
||||
|
||||
assertSuggestClass('A');
|
||||
assertSuggestConstructor('A.a1');
|
||||
assertSuggestConstructor('A.a2');
|
||||
assertNotSuggested('A.a1');
|
||||
assertNotSuggested('A.a2');
|
||||
|
||||
assertSuggestClass('B');
|
||||
assertSuggestConstructor('B.b1');
|
||||
assertSuggestConstructor('B.b2');
|
||||
assertNotSuggested('B.b1');
|
||||
assertNotSuggested('B.b2');
|
||||
}
|
||||
|
||||
test_ImportDirective_dart() async {
|
||||
|
|
|
@ -114,8 +114,8 @@ main() {
|
|||
''');
|
||||
await computeSuggestions();
|
||||
|
||||
assertSuggestConstructor('foo', elementName: 'foo');
|
||||
assertSuggestConstructor('bar', elementName: 'bar');
|
||||
assertNotSuggested('foo');
|
||||
assertNotSuggested('bar');
|
||||
}
|
||||
|
||||
test_keyword() async {
|
||||
|
|
|
@ -3541,7 +3541,7 @@ class FakeFlutter {
|
|||
import 'package:flutter/widgets.dart';
|
||||
class FakeFlutter {
|
||||
main() {
|
||||
return /*caret*/Container();
|
||||
return /*caret*/new Container();
|
||||
}
|
||||
}
|
||||
''');
|
||||
|
@ -3550,7 +3550,7 @@ class FakeFlutter {
|
|||
import 'package:flutter/widgets.dart';
|
||||
class FakeFlutter {
|
||||
main() {
|
||||
return /*caret*/Center(child: Container());
|
||||
return /*caret*/new Center(child: new Container());
|
||||
}
|
||||
}
|
||||
''');
|
||||
|
@ -3677,7 +3677,7 @@ import 'package:flutter/widgets.dart';
|
|||
|
||||
main() {
|
||||
return Container(
|
||||
child: /*caret*/Text('aaa'),
|
||||
child: /*caret*/new Text('aaa'),
|
||||
);
|
||||
}
|
||||
''');
|
||||
|
@ -3687,9 +3687,9 @@ import 'package:flutter/widgets.dart';
|
|||
|
||||
main() {
|
||||
return Container(
|
||||
child: /*caret*/Column(
|
||||
child: /*caret*/new Column(
|
||||
children: <Widget>[
|
||||
Text('aaa'),
|
||||
new Text('aaa'),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
|
@ -130,16 +130,6 @@ class OpType {
|
|||
optype.inStaticMethodBody =
|
||||
mthDecl is MethodDeclaration && mthDecl.isStatic;
|
||||
|
||||
// If a value should be suggested, suggest also constructors.
|
||||
if (optype.includeReturnValueSuggestions) {
|
||||
// Careful: in angular plugin, `target.unit` may be null!
|
||||
CompilationUnitElement unitElement = target.unit?.element;
|
||||
if (unitElement != null &&
|
||||
unitElement.context.analysisOptions.previewDart2) {
|
||||
optype.includeConstructorSuggestions = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Compute the type required by the context and set filters.
|
||||
optype._computeRequiredTypeAndFilters(target);
|
||||
|
||||
|
|
Loading…
Reference in a new issue