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

Unified Diff: pkg/analyzer/test/src/task/strong/non_null_checker_test.dart

Issue 2391423003: Switch 'analyzer' to 'package:test' and test_reflective_loader ^0.1.0. (Closed)
Patch Set: Created 4 years, 2 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
Index: pkg/analyzer/test/src/task/strong/non_null_checker_test.dart
diff --git a/pkg/analyzer/test/src/task/strong/non_null_checker_test.dart b/pkg/analyzer/test/src/task/strong/non_null_checker_test.dart
index d130a54e6b4db5ceccff46480bf16c96f7b50633..82aef1954eb9775a10f6a52304f722ab2595658b 100644
--- a/pkg/analyzer/test/src/task/strong/non_null_checker_test.dart
+++ b/pkg/analyzer/test/src/task/strong/non_null_checker_test.dart
@@ -14,8 +14,9 @@ import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../strong/strong_test_helper.dart';
void main() {
- initStrongModeTests();
- defineReflectiveTests(NonNullCheckerTest);
+ defineReflectiveSuite(() {
+ defineReflectiveTests(NonNullCheckerTest);
+ });
}
String _withError(String file, String error) {
@@ -73,6 +74,14 @@ void main() {
}
''';
+ void setUp() {
+ doSetUp();
+ }
+
+ void tearDown() {
+ doTearDown();
+ }
+
void test_assign_null_to_nonnullable() {
addFile('''
int x = 0;
@@ -85,27 +94,6 @@ main() {
check(nonnullableTypes: <String>['dart:core,int']);
}
- void test_forLoop() {
- checkFile('''
-class MyList {
- int length;
- MyList() {
- length = 6;
- }
- String operator [](int i) {
- return <String>["Dart", "Java", "JS", "C", "C++", "C#"][i];
- }
-}
-
-main() {
- var languages = new MyList();
- for (int i = 0; i < languages.length; ++i) {
- print(languages[i]);
- }
-}
-''');
- }
-
void test_compoundAssignment() {
addFile('''
void main() {
@@ -130,98 +118,25 @@ void main() {
check(nonnullableTypes: <String>['dart:core,int']);
}
- void test_initialize_nonnullable_with_null() {
- addFile('int x = /*error:INVALID_ASSIGNMENT*/null;');
- check(nonnullableTypes: <String>['dart:core,int']);
- }
-
- void test_initialize_nonnullable_with_valid_value() {
- addFile('int x = 0;');
- check(nonnullableTypes: <String>['dart:core,int']);
- }
-
- void test_nonnullable_fields() {
- addFile(defaultNnbdExample);
- // `null` can be passed as an argument to `Point` in default mode.
- addFile(_withError(defaultNnbdExampleMod1, "error:INVALID_ASSIGNMENT"));
- // A nullable expression can be passed as an argument to `Point` in default
- // mode.
- addFile(_withError(defaultNnbdExampleMod2, "error:INVALID_ASSIGNMENT"));
- check(nonnullableTypes: <String>['dart:core,int']);
- }
-
- void test_nullable_fields() {
- addFile(defaultNnbdExample);
- // `null` can be passed as an argument to `Point` in default mode.
- addFile(defaultNnbdExampleMod1);
- // A nullable expression can be passed as an argument to `Point` in default
- // mode.
- addFile(defaultNnbdExampleMod2);
- check();
- }
-
- // Default example from NNBD document.
- void test_nullableTypes() {
- // By default x can be set to null.
- checkFile('int x = null;');
+ void test_forLoop() {
+ checkFile('''
+class MyList {
+ int length;
+ MyList() {
+ length = 6;
}
-
- void test_prefer_final_to_non_nullable_error() {
- addFile('main() { final int /*error:FINAL_NOT_INITIALIZED*/x; }');
- addFile('final int /*error:FINAL_NOT_INITIALIZED*/x;');
- addFile('''
-void foo() {}
-
-class A {
- final int x;
-
- /*warning:FINAL_NOT_INITIALIZED_CONSTRUCTOR_1*/A();
-}
-''');
- check(nonnullableTypes: <String>['dart:core,int']);
+ String operator [](int i) {
+ return <String>["Dart", "Java", "JS", "C", "C++", "C#"][i];
}
-
- void test_uninitialized_nonnullable_field_declaration() {
- addFile('''
-void foo() {}
-
-class A {
- // Ideally, we should allow x to be init in the constructor, but that requires
- // too much complication in the checker, so for now we throw a static error at
- // the declaration site.
- int /*error:NON_NULLABLE_FIELD_NOT_INITIALIZED*/x;
-
- A();
}
-''');
- check(nonnullableTypes: <String>['dart:core,int']);
- }
- void test_uninitialized_nonnullable_local_variable() {
- // Ideally, we will do flow analysis and throw an error only if a variable
- // is used before it has been initialized.
- addFile('main() { int /*error:NON_NULLABLE_FIELD_NOT_INITIALIZED*/x; }');
- check(nonnullableTypes: <String>['dart:core,int']);
- }
-
- void test_uninitialized_nonnullable_top_level_variable_declaration() {
- // If `int`s are non-nullable, then this code should throw an error.
- addFile('int /*error:NON_NULLABLE_FIELD_NOT_INITIALIZED*/x;');
- check(nonnullableTypes: <String>['dart:core,int']);
+main() {
+ var languages = new MyList();
+ for (int i = 0; i < languages.length; ++i) {
+ print(languages[i]);
}
-
- void test_method_call() {
- addFile('''
-int s(int x) {
- return x + 1;
-}
-
-void main() {
- s(10);
- s(/*error:INVALID_ASSIGNMENT*/null);
}
''');
- check(nonnullableTypes: <String>['dart:core,int']);
}
void test_generics() {
@@ -259,6 +174,16 @@ void main() {
check(nonnullableTypes: <String>['dart:core,int']);
}
+ void test_initialize_nonnullable_with_null() {
+ addFile('int x = /*error:INVALID_ASSIGNMENT*/null;');
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
+
+ void test_initialize_nonnullable_with_valid_value() {
+ addFile('int x = 0;');
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
+
void test_map() {
addFile('''
class Pair<K, V> {
@@ -312,4 +237,88 @@ void main() {
''');
check(nonnullableTypes: <String>['dart:core,int']);
}
+
+ // Default example from NNBD document.
+ void test_method_call() {
+ addFile('''
+int s(int x) {
+ return x + 1;
+}
+
+void main() {
+ s(10);
+ s(/*error:INVALID_ASSIGNMENT*/null);
+}
+''');
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
+
+ void test_nonnullable_fields() {
+ addFile(defaultNnbdExample);
+ // `null` can be passed as an argument to `Point` in default mode.
+ addFile(_withError(defaultNnbdExampleMod1, "error:INVALID_ASSIGNMENT"));
+ // A nullable expression can be passed as an argument to `Point` in default
+ // mode.
+ addFile(_withError(defaultNnbdExampleMod2, "error:INVALID_ASSIGNMENT"));
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
+
+ void test_nullable_fields() {
+ addFile(defaultNnbdExample);
+ // `null` can be passed as an argument to `Point` in default mode.
+ addFile(defaultNnbdExampleMod1);
+ // A nullable expression can be passed as an argument to `Point` in default
+ // mode.
+ addFile(defaultNnbdExampleMod2);
+ check();
+ }
+
+ void test_nullableTypes() {
+ // By default x can be set to null.
+ checkFile('int x = null;');
+ }
+
+ void test_prefer_final_to_non_nullable_error() {
+ addFile('main() { final int /*error:FINAL_NOT_INITIALIZED*/x; }');
+ addFile('final int /*error:FINAL_NOT_INITIALIZED*/x;');
+ addFile('''
+void foo() {}
+
+class A {
+ final int x;
+
+ /*warning:FINAL_NOT_INITIALIZED_CONSTRUCTOR_1*/A();
+}
+''');
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
+
+ void test_uninitialized_nonnullable_field_declaration() {
+ addFile('''
+void foo() {}
+
+class A {
+ // Ideally, we should allow x to be init in the constructor, but that requires
+ // too much complication in the checker, so for now we throw a static error at
+ // the declaration site.
+ int /*error:NON_NULLABLE_FIELD_NOT_INITIALIZED*/x;
+
+ A();
+}
+''');
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
+
+ void test_uninitialized_nonnullable_local_variable() {
+ // Ideally, we will do flow analysis and throw an error only if a variable
+ // is used before it has been initialized.
+ addFile('main() { int /*error:NON_NULLABLE_FIELD_NOT_INITIALIZED*/x; }');
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
+
+ void test_uninitialized_nonnullable_top_level_variable_declaration() {
+ // If `int`s are non-nullable, then this code should throw an error.
+ addFile('int /*error:NON_NULLABLE_FIELD_NOT_INITIALIZED*/x;');
+ check(nonnullableTypes: <String>['dart:core,int']);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698