Verify that mixin constraints can't be satisfied by the application (or named class) itself.
When I first began working on the feature I mistakenly thought that these two test cases would be free from compile-time errors, so it seemed like it would be worth adding a test case to make sure others don't have the same misunderstanding. Change-Id: I322991c818f9d136180de443090fa4e15f6f0e27 Reviewed-on: https://dart-review.googlesource.com/76680 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
98a9adf696
commit
c22b2efb48
@@ -320,6 +320,8 @@ mixin_declaration/mixin_declaration_inference_invalid_11_test: MissingCompileTim
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/03: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/04: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/05: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/06: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/07: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_override_test/06: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_override_test/07: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_override_test/08: MissingCompileTimeError
|
||||
|
||||
@@ -87,6 +87,8 @@ main_test/03: RuntimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/03: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/04: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/05: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/06: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/07: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_override_test/none: CompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_superinvocation_test/10: CompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_superinvocation_test/none: CompileTimeError
|
||||
@@ -208,6 +210,8 @@ implicit_creation/implicit_const_not_default_values_test/e8: MissingCompileTimeE
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/03: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/04: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/05: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/06: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/07: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_override_test/none: CompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_superinvocation_test/10: CompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_superinvocation_test/none: CompileTimeError
|
||||
@@ -2097,6 +2101,8 @@ generic_test/01: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/03: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/04: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/05: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/06: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_application_supertype_test/07: MissingCompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_override_test/none: CompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_superinvocation_test/10: CompileTimeError
|
||||
mixin_declaration/mixin_declaration_invalid_superinvocation_test/none: CompileTimeError
|
||||
|
||||
+8
@@ -26,6 +26,14 @@ mixin M2 on UnaryNum, UnaryInt {}
|
||||
class _ = UnaryInt with M2; //# 04: compile-time error
|
||||
class _ = UnaryNum with M2; //# 05: compile-time error
|
||||
|
||||
// Note that it is not sufficient for the application to declare that it
|
||||
// implements the super-interface.
|
||||
abstract class _ = Object with M1 implements UnaryNum; //# 06: compile-time error
|
||||
|
||||
// Nor is it sufficient, in the case of an anonymous mixin application, for the
|
||||
// containing class to declare that it implements the super-interface.
|
||||
abstract class _ extends Object with M1 implements UnaryNum {} //# 07: compile-time error
|
||||
|
||||
main() {
|
||||
// M1 and M2 are valid types.
|
||||
Expect.notType<M1>(null);
|
||||
|
||||
Reference in New Issue
Block a user