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

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

Issue 2837173002: fix #29426, class type alias was missing checks (Closed)
Patch Set: Created 3 years, 8 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/generated/compile_time_error_code_test.dart
diff --git a/pkg/analyzer/test/generated/compile_time_error_code_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
index c71d7915fb642227219efc65afc8991789be056e..5889c8f1bb81bca0c4f5001170715433df35ff19 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
@@ -2782,6 +2782,26 @@ class B extends A implements A {}''');
verify([source]);
}
+ test_implementsSuperClass_typeAlias() async {
+ Source source = addSource(r'''
+class A {}
+class M {}
+class B = A with M implements A;''');
+ await computeAnalysisResult(source);
+ assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS]);
+ verify([source]);
+ }
+
+ test_implementsSuperClass_Object_typeAlias() async {
+ Source source = addSource(r'''
+class M {}
+class A = Object with M implements Object;
+ ''');
+ await computeAnalysisResult(source);
+ assertErrors(source, [CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS]);
+ verify([source]);
+ }
+
test_implicitThisReferenceInInitializer_field() async {
Source source = addSource(r'''
class A {
@@ -5337,97 +5357,62 @@ f() {
verify([source]);
}
- test_privateCollisionInMixinApplication_mixinAndMixin() async {
- resetWith(options: new AnalysisOptionsImpl()..strongMode = true);
- addNamedSource(
- '/lib1.dart',
- '''
-class A {
- int _x;
-}
-
-class B {
- int _x;
-}
-''');
- Source source = addSource('''
+ test_privateCollisionInMixinApplication_mixinAndMixin() {
+ return _privateCollisionInMixinApplicationTest('''
import 'lib1.dart';
class C extends Object with A, B {}
''');
- await computeAnalysisResult(source);
- assertErrors(
- source, [CompileTimeErrorCode.PRIVATE_COLLISION_IN_MIXIN_APPLICATION]);
- verify([source]);
}
- test_privateCollisionInMixinApplication_mixinAndMixin_indirect() async {
- resetWith(options: new AnalysisOptionsImpl()..strongMode = true);
- addNamedSource(
- '/lib1.dart',
- '''
-class A {
- int _x;
-}
-
-class B {
- int _x;
-}
-''');
- Source source = addSource('''
+ test_privateCollisionInMixinApplication_mixinAndMixin_indirect() {
+ return _privateCollisionInMixinApplicationTest('''
import 'lib1.dart';
class C extends Object with A {}
class D extends C with B {}
''');
- await computeAnalysisResult(source);
- assertErrors(
- source, [CompileTimeErrorCode.PRIVATE_COLLISION_IN_MIXIN_APPLICATION]);
- verify([source]);
}
- test_privateCollisionInMixinApplication_superclassAndMixin() async {
- resetWith(options: new AnalysisOptionsImpl()..strongMode = true);
- addNamedSource(
- '/lib1.dart',
- '''
-class A {
- int _x;
-}
+ test_privateCollisionInMixinApplication_superclassAndMixin() {
+ return _privateCollisionInMixinApplicationTest('''
+import 'lib1.dart';
+class C extends A with B {}
+''');
+ }
-class B {
- int _x;
-}
+ test_privateCollisionInMixinApplication_superclassAndMixin_same() {
+ return _privateCollisionInMixinApplicationTest('''
+import 'lib1.dart';
+class C extends A with A {}
''');
- Source source = addSource('''
+ }
+
+ test_privateCollisionInClassTypeAlias_mixinAndMixin() {
+ return _privateCollisionInMixinApplicationTest('''
import 'lib1.dart';
-class C extends A with B {}
+class C = Object with A, B;
''');
- await computeAnalysisResult(source);
- assertErrors(
- source, [CompileTimeErrorCode.PRIVATE_COLLISION_IN_MIXIN_APPLICATION]);
- verify([source]);
}
- test_privateCollisionInMixinApplication_superclassAndMixin_same() async {
- resetWith(options: new AnalysisOptionsImpl()..strongMode = true);
- addNamedSource(
- '/lib1.dart',
- '''
-class A {
- int _x;
-}
+ test_privateCollisionInClassTypeAlias_mixinAndMixin_indirect() {
+ return _privateCollisionInMixinApplicationTest('''
+import 'lib1.dart';
+class C = Object with A;
+class D = C with B;
+''');
+ }
-class B {
- int _x;
-}
+ test_privateCollisionInClassTypeAlias_superclassAndMixin() {
+ return _privateCollisionInMixinApplicationTest('''
+import 'lib1.dart';
+class C = A with B;
''');
- Source source = addSource('''
+ }
+
+ test_privateCollisionInClassTypeAlias_superclassAndMixin_same() {
+ return _privateCollisionInMixinApplicationTest('''
import 'lib1.dart';
-class C extends A with A {}
+class C = A with A;
''');
- await computeAnalysisResult(source);
- assertErrors(
- source, [CompileTimeErrorCode.PRIVATE_COLLISION_IN_MIXIN_APPLICATION]);
- verify([source]);
}
test_privateOptionalParameter() async {
@@ -6662,4 +6647,24 @@ class A {
await _check_wrongNumberOfParametersForOperator(name, "");
await _check_wrongNumberOfParametersForOperator(name, "a, b");
}
+
+ Future<Null> _privateCollisionInMixinApplicationTest(String testCode) async {
+ resetWith(options: new AnalysisOptionsImpl()..strongMode = true);
+ addNamedSource(
+ '/lib1.dart',
+ '''
+class A {
+ int _x;
+}
+
+class B {
+ int _x;
+}
+''');
+ Source source = addSource(testCode);
+ await computeAnalysisResult(source);
+ assertErrors(
+ source, [CompileTimeErrorCode.PRIVATE_COLLISION_IN_MIXIN_APPLICATION]);
+ verify([source]);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698