Skip to content

Commit

Permalink
#2559. Add more augmenting expression tests for getters (#2619)
Browse files Browse the repository at this point in the history
Add more augmenting expression tests for getters
  • Loading branch information
sgrekhov committed Apr 24, 2024
1 parent e6fdb61 commit c03a319
Show file tree
Hide file tree
Showing 9 changed files with 482 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
///
/// @description Checks that it is a compile-time error if within an augmenting
/// getter `augmented()` expression is invoked, and the augmented declaration
/// does not return a function.
/// does not return a callable type.
/// @author sgrekhov22@gmail.com
// SharedOptions=--enable-experiment=macros
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
///
/// @description Checks that it is a compile-time error if within an augmenting
/// getter `augmented()` expression is invoked, and the augmented declaration
/// does not return a function.
/// does not return a callable type.
/// @author sgrekhov22@gmail.com
// SharedOptions=--enable-experiment=macros
Expand All @@ -23,6 +23,12 @@ augment String get topLevelGetter {
//^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}

Expand All @@ -32,13 +38,25 @@ augment class C {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
augment String get instanceGetter {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Expand All @@ -49,13 +67,25 @@ augment mixin M {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
augment String get instanceGetter {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Expand All @@ -68,13 +98,25 @@ augment enum E {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
augment String get instanceGetter {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Expand All @@ -85,13 +127,25 @@ augment extension Ext {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
augment String get instanceGetter {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented();
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ augment String get topLevelVariable {
//^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}

Expand All @@ -31,13 +37,25 @@ augment class C {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
augment String get instanceField {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Expand All @@ -48,13 +66,25 @@ augment mixin M {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
augment String get instanceField {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Expand All @@ -67,13 +97,25 @@ augment enum E {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
augment String get instanceField {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Expand All @@ -84,6 +126,12 @@ augment extension Ext {
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
var f = () {
augmented = "x";
// ^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
};
return "Augmented";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

import augment 'augmented_expression_A01_t05_lib.dart';

final bool augmented = false;

String get topLevelGetter => "Original:";

class C {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,48 @@
augment library 'augmented_expression_A01_t05.dart';

augment String get topLevelVariable {
Expect.equals("Original:a", augmented + "a");
Expect.equals("Original:a1", augmented + "a1");
var f = () {
return augmented + "a2";
};
Expect.equals("Original:a2", f());
return "Augmented";
}

augment class C {
augment static String get staticGetter {
Expect.equals("Original:b", augmented + "b");
Expect.equals("Original:b1", augmented + "b1");
var f = () {
return augmented + "b2";
};
Expect.equals("Original:b2", f());
return "Augmented";
}
augment String get instanceGetter {
Expect.equals("Original:c", augmented + "c");
Expect.equals("Original:c1", augmented + "c1");
var f = () {
return augmented + "c2";
};
Expect.equals("Original:c2", f());
return "Augmented";
}
}

augment mixin M {
augment static String get staticGetter {
Expect.equals("Original:d", augmented + "d");
Expect.equals("Original:d1", augmented + "d1");
var f = () {
return augmented + "d2";
};
Expect.equals("Original:d2", f());
return "Augmented";
}
augment String get instanceGetter {
Expect.equals("Original:e", augmented + "e");
Expect.equals("Original:e1", augmented + "e1");
var f = () {
return augmented + "e2";
};
Expect.equals("Original:e2", f());
return "Augmented";
}
}
Expand All @@ -48,22 +68,38 @@ augment enum E {
augment e1;

augment static String get staticGetter {
Expect.equals("Original:f", augmented + "f");
Expect.equals("Original:f1", augmented + "f1");
var f = () {
return augmented + "f2";
};
Expect.equals("Original:f2", f());
return "Augmented";
}
augment String get instanceGetter {
Expect.equals("Original:g", augmented + "g");
Expect.equals("Original:g1", augmented + "g1");
var f = () {
return augmented + "g2";
};
Expect.equals("Original:g2", f());
return "Augmented";
}
}

augment extension Ext {
augment static String get staticGetter {
Expect.equals("Original:h", augmented + "h");
Expect.equals("Original:h1", augmented + "h1");
var f = () {
return augmented + "h2";
};
Expect.equals("Original:h2", f());
return "Augmented";
}
augment String get instanceGetter {
Expect.equals("Original:i", augmented + "i");
Expect.equals("Original:i1", augmented + "i1");
var f = () {
return augmented + "i2";
};
Expect.equals("Original:i2", f());
return "Augmented";
}
}

0 comments on commit c03a319

Please sign in to comment.