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

Unified Diff: pkg/analyzer/test/generated/resolver_test.dart

Issue 1531313002: fix #25280, treat setters as returning void in strong mode (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 12 months 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
« no previous file with comments | « pkg/analyzer/test/generated/all_the_rest_test.dart ('k') | pkg/analyzer/test/src/summary/summary_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/generated/resolver_test.dart
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 1f1f2a57329554b16abec9aed6fbcc49fe4a746a..5fd8736c7ec79bf55cfb2744bd148b4f3c9e632f 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -13510,6 +13510,79 @@ main() {
expect(declaration.initializer.propagatedType, isNull);
}
+ void test_setterWithDynamicTypeIsError() {
+ Source source = addSource(r'''
+class A {
+ dynamic set f(String s) => null;
+}
+dynamic set g(int x) => null;
+''');
+ computeLibrarySourceErrors(source);
+ assertErrors(source, [
+ StaticWarningCode.NON_VOID_RETURN_FOR_SETTER,
+ StaticWarningCode.NON_VOID_RETURN_FOR_SETTER
+ ]);
+ verify([source]);
+ }
+
+ void test_setterWithExplicitVoidType_returningVoid() {
+ Source source = addSource(r'''
+void returnsVoid() {}
+class A {
+ void set f(String s) => returnsVoid();
+}
+void set g(int x) => returnsVoid();
+''');
+ computeLibrarySourceErrors(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
+ void test_setterWithNoVoidType() {
+ Source source = addSource(r'''
+class A {
+ set f(String s) {
+ return '42';
+ }
+}
+set g(int x) => 42;
+''');
+ computeLibrarySourceErrors(source);
+ assertErrors(source, [
+ StaticTypeWarningCode.RETURN_OF_INVALID_TYPE,
+ StaticTypeWarningCode.RETURN_OF_INVALID_TYPE
+ ]);
+ verify([source]);
+ }
+
+ void test_setterWithNoVoidType_returningVoid() {
+ Source source = addSource(r'''
+void returnsVoid() {}
+class A {
+ set f(String s) => returnsVoid();
+}
+set g(int x) => returnsVoid();
+''');
+ computeLibrarySourceErrors(source);
+ assertNoErrors(source);
+ verify([source]);
+ }
+
+ void test_setterWithOtherTypeIsError() {
+ Source source = addSource(r'''
+class A {
+ String set f(String s) => null;
+}
+Object set g(x) => null;
+''');
+ computeLibrarySourceErrors(source);
+ assertErrors(source, [
+ StaticWarningCode.NON_VOID_RETURN_FOR_SETTER,
+ StaticWarningCode.NON_VOID_RETURN_FOR_SETTER
+ ]);
+ verify([source]);
+ }
+
void test_ternaryOperator_null_left() {
String code = r'''
main() {
« no previous file with comments | « pkg/analyzer/test/generated/all_the_rest_test.dart ('k') | pkg/analyzer/test/src/summary/summary_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698