mirror of
https://github.com/dart-lang/sdk
synced 2024-10-03 21:21:32 +00:00
Issue 2246. Fix for 'Wrap with new widget' assist when activated on a constructor name.
R=brianwilkerson@google.com Bug: https://github.com/flutter/flutter-intellij/issues/2246 Change-Id: I66ca8b121b2600fa86c787fc26fe6dc01c79c24d Reviewed-on: https://dart-review.googlesource.com/55272 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
07f642384e
commit
8907348ae9
|
@ -344,7 +344,10 @@ bool isWidgetExpression(AstNode node) {
|
|||
if (node == null) {
|
||||
return false;
|
||||
}
|
||||
if (node?.parent is TypeName || node?.parent?.parent is TypeName) {
|
||||
if (node.parent is TypeName || node.parent?.parent is TypeName) {
|
||||
return false;
|
||||
}
|
||||
if (node.parent is ConstructorName) {
|
||||
return false;
|
||||
}
|
||||
if (node is NamedExpression) {
|
||||
|
|
|
@ -3687,6 +3687,53 @@ class FakeFlutter {
|
|||
''');
|
||||
}
|
||||
|
||||
test_flutterWrapCenter_OK_namedConstructor() async {
|
||||
addFlutterPackage();
|
||||
await resolveTestUnit('''
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
class MyWidget extends StatelessWidget {
|
||||
MyWidget.named();
|
||||
|
||||
Widget build(BuildContext context) => null;
|
||||
}
|
||||
|
||||
main() {
|
||||
return MyWidget./*caret*/named();
|
||||
}
|
||||
''');
|
||||
_setCaretLocation();
|
||||
if (omitNew) {
|
||||
await assertHasAssist(DartAssistKind.FLUTTER_WRAP_CENTER, '''
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
class MyWidget extends StatelessWidget {
|
||||
MyWidget.named();
|
||||
|
||||
Widget build(BuildContext context) => null;
|
||||
}
|
||||
|
||||
main() {
|
||||
return /*caret*/Center(child: MyWidget.named());
|
||||
}
|
||||
''');
|
||||
} else {
|
||||
await assertHasAssist(DartAssistKind.FLUTTER_WRAP_CENTER, '''
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
class MyWidget extends StatelessWidget {
|
||||
MyWidget.named();
|
||||
|
||||
Widget build(BuildContext context) => null;
|
||||
}
|
||||
|
||||
main() {
|
||||
return new Center(child: MyWidget./*caret*/named());
|
||||
}
|
||||
''');
|
||||
}
|
||||
}
|
||||
|
||||
test_flutterWrapColumn_OK_coveredByWidget() async {
|
||||
addFlutterPackage();
|
||||
await resolveTestUnit('''
|
||||
|
|
|
@ -272,6 +272,7 @@ var b = new Text('bbb');
|
|||
import 'package:flutter/widgets.dart';
|
||||
|
||||
main() {
|
||||
MyWidget.named(); // use
|
||||
var text = new Text('abc');
|
||||
text;
|
||||
createEmptyText();
|
||||
|
@ -280,8 +281,19 @@ main() {
|
|||
intVariable;
|
||||
}
|
||||
|
||||
class MyWidget extends StatelessWidget {
|
||||
MyWidget.named();
|
||||
}
|
||||
|
||||
Text createEmptyText() => new Text('');
|
||||
''');
|
||||
{
|
||||
Expression expression = findNodeAtString('named(); // use');
|
||||
expect(isWidgetExpression(expression), isFalse);
|
||||
var creation = expression.parent.parent as InstanceCreationExpression;
|
||||
expect(isWidgetExpression(creation), isTrue);
|
||||
}
|
||||
|
||||
{
|
||||
Expression expression = findNodeAtString("new Text('abc')");
|
||||
expect(isWidgetExpression(expression), isTrue);
|
||||
|
|
Loading…
Reference in a new issue