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:
Konstantin Shcheglov 2018-04-03 22:29:09 +00:00 committed by commit-bot@chromium.org
parent e5d20a7749
commit 4089111540
8 changed files with 24 additions and 44 deletions

View file

@ -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) {

View file

@ -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('(');

View file

@ -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 {

View file

@ -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() {

View file

@ -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 {

View file

@ -114,8 +114,8 @@ main() {
''');
await computeSuggestions();
assertSuggestConstructor('foo', elementName: 'foo');
assertSuggestConstructor('bar', elementName: 'bar');
assertNotSuggested('foo');
assertNotSuggested('bar');
}
test_keyword() async {

View file

@ -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'),
],
),
);

View file

@ -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);