Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Unified Diff: packages/dart_style/test/splitting/invocations.stmt

Issue 1521693002: Roll Observatory deps (charted -> ^0.3.0) (Closed) Base URL: https://chromium.googlesource.com/external/github.com/dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: packages/dart_style/test/splitting/invocations.stmt
diff --git a/packages/dart_style/test/splitting/invocations.stmt b/packages/dart_style/test/splitting/invocations.stmt
index 3d2a5032d43c525b6e9249a4827e1f3af5538758..952efe91d731ed438a4e87e4c6ba4cd3c095008a 100644
--- a/packages/dart_style/test/splitting/invocations.stmt
+++ b/packages/dart_style/test/splitting/invocations.stmt
@@ -17,7 +17,7 @@ return
<<<
return call({'type': type, 'id': id})
.then(deserializeAsset);
->>> allows chained calls on one line with multi-line last argument list
+>>> trailing functions in a chain do not force it to split
compiler
.run(script)
.then((_) {
@@ -27,26 +27,28 @@ compiler
compiler.run(script).then((_) {
body;
});
->>> allow inline chains before and after a hard newline
-compiler.a().b((_) {
- body;
-}).c().d();
+>>> a function in the middle of a chain is indented
+compiler.a().b((_) {body;}).c().d();
<<<
-compiler.a().b((_) {
- body;
-}).c().d();
->>> allow an inline chain before a hard newline but not after
-compiler.a().b((_) {
- body;
-}).somethingLong().somethingLong().somethingLong();
+compiler
+ .a()
+ .b((_) {
+ body;
+ })
+ .c()
+ .d();
+>>> a function in the middle of a chain is indented
+compiler.a().b((_) {body;}).somethingLong().somethingLong().somethingLong();
<<<
-compiler.a().b((_) {
- body;
-})
+compiler
+ .a()
+ .b((_) {
+ body;
+ })
.somethingLong()
.somethingLong()
.somethingLong();
->>> allow an inline chain after a hard newline but not before
+>>> a function in the middle of a chain is indented
compiler.somethingLong().somethingLong().somethingLong((_) {
body;
}).a().b();
@@ -55,8 +57,21 @@ compiler
.somethingLong()
.somethingLong()
.somethingLong((_) {
+ body;
+ })
+ .a()
+ .b();
+>>> one trailing call does not force function to indent
+compiler.somethingLong().somethingLong().somethingLong((_) {
body;
-}).a().b();
+}).a();
+<<<
+compiler
+ .somethingLong()
+ .somethingLong()
+ .somethingLong((_) {
+ body;
+}).a();
>>> nest calls one more than target
someVeryLongExpression = someVeryLongExpression.someLongMethod();
<<<
@@ -159,4 +174,109 @@ object
?.method()
.method()
?.method()
- .method();
+ .method();
+>>> index in property chain
+someReceiverObject.property1.property2
+ .property3[0]
+ .property4
+ .property5
+ .property6;
+<<<
+someReceiverObject
+ .property1
+ .property2
+ .property3[0]
+ .property4
+ .property5
+ .property6;
+>>> chained indexes
+someReceiverObject.property1.property2
+ .property3[argument]
+ [argument][argument]
+ .property4
+ .property5
+ .property6;
+<<<
+someReceiverObject
+ .property1
+ .property2
+ .property3[argument][argument]
+ [argument]
+ .property4
+ .property5
+ .property6;
+>>> index on method call
+someReceiverObject.property1.property2
+ .method3()[0]
+ .property4
+ .property5
+ .property6;
+<<<
+someReceiverObject.property1.property2
+ .method3()[0]
+ .property4
+ .property5
+ .property6;
+>>> target splits more deeply than method chain
+someTargetFunction(argument, argument, argument).method().method();
+<<<
+someTargetFunction(
+ argument, argument, argument)
+ .method()
+ .method();
+>>> splitting the target forces methods to split
+someVeryLongTargetFunction(argument, argument).one().two();
+<<<
+someVeryLongTargetFunction(
+ argument, argument)
+ .one()
+ .two();
+>>> target splits more deeply than property chain
+someTargetFunction(argument, argument, argument).property.property;
+<<<
+someTargetFunction(
+ argument, argument, argument)
+ .property
+ .property;
+>>> splitting the target forces methods to split
+someVeryLongTargetFunction(argument, argument).one.two;
+<<<
+someVeryLongTargetFunction(
+ argument, argument)
+ .one
+ .two;
+>>> do not split on "." when target is list
+[element, element, element, element, element].someLongMethod();
+<<<
+[
+ element,
+ element,
+ element,
+ element,
+ element
+].someLongMethod();
+>>> do not split on "." when target is map
+{"key": "value", "another": "another value"}.someLongMethod();
+<<<
+{
+ "key": "value",
+ "another": "another value"
+}.someLongMethod();
+>>> do not split on "." when target is function literal passed to method
+method(() {;}).someLongMethod();
+<<<
+method(() {
+ ;
+}).someLongMethod();
+>>> do not split on "." when target is function literal passed to constructor
+new Foo(() {;}).someLongMethod();
+<<<
+new Foo(() {
+ ;
+}).someLongMethod();
+>>> do not split on "." when target is function literal passed to function
+(function)(() {;}).someLongMethod();
+<<<
+(function)(() {
+ ;
+}).someLongMethod();
« no previous file with comments | « packages/dart_style/test/splitting/expressions.stmt ('k') | packages/dart_style/test/splitting/list_arguments.stmt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698