From bed71b7776a528ddd72afa3e1ec0d596dc04d569 Mon Sep 17 00:00:00 2001 From: Bob Nystrom Date: Wed, 2 May 2018 16:05:25 +0000 Subject: [PATCH] Migrate and clean up the prefix negative tests. Since there were already non-negative tests with the same numbers, I gave them meaningful names. Merged a couple of tests into the same file when it made sense since multitests let us do that. Deleted prefix1_negative_test, because it essentially tested only that a random identifier does not resolve, which is not particularly related to prefixes. Change-Id: I91718f6df5126f123d9a8ea3abbc6898797db2db Reviewed-on: https://dart-review.googlesource.com/52985 Reviewed-by: Sigmund Cherem --- tests/language_2/language_2_analyzer.status | 18 ++-------- tests/language_2/language_2_dartdevc.status | 2 +- tests/language_2/language_2_kernel.status | 19 +++++------ .../language_2/language_2_spec_parser.status | 14 -------- tests/language_2/language_2_vm.status | 9 +++++ tests/language_2/library2.dart | 3 -- tests/language_2/prefix10_negative_test.dart | 25 -------------- tests/language_2/prefix12_negative_test.dart | 13 -------- tests/language_2/prefix13_negative_test.dart | 18 ---------- tests/language_2/prefix1_negative_test.dart | 19 ----------- tests/language_2/prefix2_negative_test.dart | 19 ----------- tests/language_2/prefix4_negative_test.dart | 25 -------------- tests/language_2/prefix5_negative_test.dart | 23 ------------- tests/language_2/prefix6_negative_test.dart | 21 ------------ tests/language_2/prefix8_negative_test.dart | 20 ----------- ...dart => prefix_import_collision_test.dart} | 6 +--- ...est.dart => prefix_invalid_name_test.dart} | 11 +++---- tests/language_2/prefix_shadow_test.dart | 33 +++++++++++++++++++ .../prefix_transitive_import_prefix_test.dart | 11 +++++++ ...art => prefix_transitive_import_test.dart} | 10 +++--- ...dart => prefix_unresolved_class_test.dart} | 19 ++++++----- ...rt => prefix_variable_collision_test.dart} | 7 +--- .../variable_shadow_class_test.dart | 26 +++++++++++++++ 23 files changed, 114 insertions(+), 257 deletions(-) delete mode 100644 tests/language_2/prefix10_negative_test.dart delete mode 100644 tests/language_2/prefix12_negative_test.dart delete mode 100644 tests/language_2/prefix13_negative_test.dart delete mode 100644 tests/language_2/prefix1_negative_test.dart delete mode 100644 tests/language_2/prefix2_negative_test.dart delete mode 100644 tests/language_2/prefix4_negative_test.dart delete mode 100644 tests/language_2/prefix5_negative_test.dart delete mode 100644 tests/language_2/prefix6_negative_test.dart delete mode 100644 tests/language_2/prefix8_negative_test.dart rename tests/language_2/{prefix3_negative_test.dart => prefix_import_collision_test.dart} (90%) rename tests/language_2/{prefix18_negative_test.dart => prefix_invalid_name_test.dart} (63%) create mode 100644 tests/language_2/prefix_shadow_test.dart create mode 100644 tests/language_2/prefix_transitive_import_prefix_test.dart rename tests/language_2/{prefix11_negative_test.dart => prefix_transitive_import_test.dart} (63%) rename tests/language_2/{prefix15_negative_test.dart => prefix_unresolved_class_test.dart} (62%) rename tests/language_2/{prefix7_negative_test.dart => prefix_variable_collision_test.dart} (86%) create mode 100644 tests/language_2/variable_shadow_class_test.dart diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status index 7bf5e3c55bf..aeee7253d5b 100644 --- a/tests/language_2/language_2_analyzer.status +++ b/tests/language_2/language_2_analyzer.status @@ -100,15 +100,7 @@ parameter_initializer3_negative_test: CompileTimeError parameter_initializer4_negative_test: CompileTimeError parameter_initializer6_negative_test: CompileTimeError part_refers_to_core_library_test/01: MissingCompileTimeError # Issue 29709 -prefix11_negative_test: Fail # Issue 11964 -prefix12_negative_test: Fail # Issue 11962 -prefix1_negative_test: Fail # Issue 11962 -prefix2_negative_test: Fail # Issue 11962 -prefix3_negative_test: Fail # Issue 12191 -prefix4_negative_test: Fail # Issue 11962 -prefix5_negative_test: Fail # Issue 11962 -prefix7_negative_test: CompileTimeError -prefix8_negative_test: Fail # Issue 11964 +prefix_shadow_test/01: MissingCompileTimeError # Issue 33005 private_member1_negative_test: Fail # Issue 14021 private_member2_negative_test: Fail # Issue 14021 private_member3_negative_test: Fail # Issue 14021 @@ -1161,10 +1153,6 @@ override_inheritance_method_test/28: CompileTimeError override_inheritance_method_test/29: CompileTimeError parameter_initializer_test: CompileTimeError parser_quirks_test: CompileTimeError -prefix13_negative_test: CompileTimeError, OK -prefix15_negative_test: CompileTimeError, OK -prefix18_negative_test: CompileTimeError, OK -prefix6_negative_test: CompileTimeError, OK regress_22976_test/01: CompileTimeError regress_22976_test/02: CompileTimeError regress_22976_test/none: CompileTimeError @@ -1566,13 +1554,11 @@ partial_tearoff_instantiation_test/07: MissingCompileTimeError partial_tearoff_instantiation_test/08: MissingCompileTimeError positional_parameters_type_test/01: MissingCompileTimeError positional_parameters_type_test/02: MissingCompileTimeError -prefix13_negative_test: CompileTimeError, OK -prefix15_negative_test: CompileTimeError, OK prefix16_test/00: MissingCompileTimeError prefix16_test/01: MissingCompileTimeError -prefix18_negative_test: CompileTimeError, OK prefix22_test/00: MissingCompileTimeError prefix23_test/00: MissingCompileTimeError +prefix_shadow_test/02: MissingCompileTimeError private_access_test/01: MissingCompileTimeError private_access_test/02: MissingCompileTimeError private_access_test/03: MissingCompileTimeError diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status index f6cc43c32de..718a0b69ec7 100644 --- a/tests/language_2/language_2_dartdevc.status +++ b/tests/language_2/language_2_dartdevc.status @@ -143,7 +143,7 @@ override_inheritance_method_test/28: CompileTimeError override_inheritance_method_test/29: CompileTimeError parameter_initializer_test: CompileTimeError part_refers_to_core_library_test/01: Crash -prefix10_negative_test: Fail # Issue 29920 +prefix_shadow_test/01: MissingCompileTimeError # Issue 33005 regress_23089_test: MissingCompileTimeError regress_23408_test: CompileTimeError regress_24283_test: RuntimeError # Intended to fail, requires 64-bit numbers. diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status index 611f8e8cbe8..444e4a6c1eb 100644 --- a/tests/language_2/language_2_kernel.status +++ b/tests/language_2/language_2_kernel.status @@ -1308,6 +1308,15 @@ override_inheritance_no_such_method_test/07: MissingCompileTimeError override_inheritance_no_such_method_test/09: MissingCompileTimeError override_inheritance_no_such_method_test/10: MissingCompileTimeError override_inheritance_no_such_method_test/12: MissingCompileTimeError +prefix_import_collision_test/01: MissingCompileTimeError +prefix_shadow_test/01: MissingCompileTimeError +prefix_shadow_test/02: MissingCompileTimeError +prefix_transitive_import_prefix_test/01: MissingCompileTimeError +prefix_transitive_import_prefix_test/02: MissingCompileTimeError +prefix_transitive_import_prefix_test/03: MissingCompileTimeError +prefix_transitive_import_test/01: MissingCompileTimeError +prefix_transitive_import_test/02: MissingCompileTimeError +variable_shadow_class_test/01: MissingCompileTimeError [ $fasta && $strong ] compile_time_constant_k_test/01: MissingCompileTimeError @@ -1938,20 +1947,10 @@ partial_tearoff_instantiation_test/01: MissingCompileTimeError partial_tearoff_instantiation_test/03: MissingCompileTimeError positional_parameters_type_test/01: MissingCompileTimeError positional_parameters_type_test/02: MissingCompileTimeError -prefix10_negative_test: Fail -prefix11_negative_test: Fail -prefix12_negative_test: Fail prefix16_test/00: MissingCompileTimeError prefix16_test/01: MissingCompileTimeError -prefix1_negative_test: Fail prefix22_test/00: MissingCompileTimeError prefix23_test/00: MissingCompileTimeError -prefix2_negative_test: Fail -prefix3_negative_test: Fail -prefix4_negative_test: Fail -prefix5_negative_test: Fail -prefix6_negative_test: Fail -prefix8_negative_test: Fail private_access_test/01: MissingCompileTimeError private_access_test/02: MissingCompileTimeError private_access_test/03: MissingCompileTimeError diff --git a/tests/language_2/language_2_spec_parser.status b/tests/language_2/language_2_spec_parser.status index 778899292a5..1504f8feb4c 100644 --- a/tests/language_2/language_2_spec_parser.status +++ b/tests/language_2/language_2_spec_parser.status @@ -55,20 +55,6 @@ parameter_initializer2_negative_test: Skip # Negative, not syntax. parameter_initializer3_negative_test: Skip # Negative, not syntax. parameter_initializer4_negative_test: Skip # Negative, not syntax. parameter_initializer6_negative_test: Skip # Negative, not syntax. -prefix10_negative_test: Skip # Negative, not syntax. -prefix11_negative_test: Skip # Negative, not syntax. -prefix12_negative_test: Skip # Negative, not syntax. -prefix13_negative_test: Skip # Negative, not syntax. -prefix15_negative_test: Skip # Negative, not syntax. -prefix18_negative_test: Fail # Negative, uses `lib1.invalid` as library prefix. -prefix1_negative_test: Skip # Negative, not syntax. -prefix2_negative_test: Skip # Negative, not syntax. -prefix3_negative_test: Skip # Negative, not syntax. -prefix4_negative_test: Skip # Negative, not syntax. -prefix5_negative_test: Skip # Negative, not syntax. -prefix6_negative_test: Skip # Negative, not syntax. -prefix7_negative_test: Skip # Negative, not syntax. -prefix8_negative_test: Skip # Negative, not syntax. private_member1_negative_test: Skip # Negative, not syntax. private_member2_negative_test: Skip # Negative, not syntax. private_member3_negative_test: Skip # Negative, not syntax. diff --git a/tests/language_2/language_2_vm.status b/tests/language_2/language_2_vm.status index 8b95fdf915d..b86d7b21cb5 100644 --- a/tests/language_2/language_2_vm.status +++ b/tests/language_2/language_2_vm.status @@ -847,6 +847,14 @@ prefix16_test/00: MissingCompileTimeError prefix16_test/01: MissingCompileTimeError prefix22_test/00: MissingCompileTimeError prefix23_test/00: MissingCompileTimeError +prefix_import_collision_test/01: MissingCompileTimeError +prefix_shadow_test/01: MissingCompileTimeError +prefix_shadow_test/02: MissingCompileTimeError +prefix_transitive_import_prefix_test/01: MissingCompileTimeError +prefix_transitive_import_prefix_test/02: MissingCompileTimeError +prefix_transitive_import_prefix_test/03: MissingCompileTimeError +prefix_transitive_import_test/01: MissingCompileTimeError +prefix_transitive_import_test/02: MissingCompileTimeError private_access_test/01: MissingCompileTimeError private_access_test/02: MissingCompileTimeError private_access_test/03: MissingCompileTimeError @@ -1031,6 +1039,7 @@ unresolved_default_constructor_test/01: MissingCompileTimeError unresolved_in_factory_test: MissingCompileTimeError unresolved_top_level_method_test: MissingCompileTimeError unresolved_top_level_var_test: MissingCompileTimeError +variable_shadow_class_test/01: MissingCompileTimeError [ $compiler != dartk && $runtime == vm && $checked ] call_method_as_cast_test/06: RuntimeError diff --git a/tests/language_2/library2.dart b/tests/language_2/library2.dart index 5bdf2670350..219303f3688 100644 --- a/tests/language_2/library2.dart +++ b/tests/language_2/library2.dart @@ -1,9 +1,6 @@ // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// - -library library2.dart; var foo; var foo1 = 0; diff --git a/tests/language_2/prefix10_negative_test.dart b/tests/language_2/prefix10_negative_test.dart deleted file mode 100644 index c660513e531..00000000000 --- a/tests/language_2/prefix10_negative_test.dart +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// - -// Type parameters can shadow a library prefix. - -library Prefix10NegativeTest.dart; - -import "package:expect/expect.dart"; -import "library10.dart" as T; - -class P { - P.named(T this.fld); - T fld; - main() { - var i = new T.Library10(10); // This should be an error. - Expect.equals(10, i.fld); - } -} - -main() { - var i = new P.named(10); - i.main(); -} diff --git a/tests/language_2/prefix12_negative_test.dart b/tests/language_2/prefix12_negative_test.dart deleted file mode 100644 index 8c2ba21a437..00000000000 --- a/tests/language_2/prefix12_negative_test.dart +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// -// Symbols in libraries imported by the prefixed library should not be visible - -library Prefix12NegativeTest.dart; - -import "library12.dart" as lib12; - -main() { - var obj = lib12.top_level11; // Error, variable should not be visible -} diff --git a/tests/language_2/prefix13_negative_test.dart b/tests/language_2/prefix13_negative_test.dart deleted file mode 100644 index 63b74b14491..00000000000 --- a/tests/language_2/prefix13_negative_test.dart +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// -// Unresolved symbols should be reported as an error. - -library Prefix13NegativeTest.dart; - -import "library12.dart" as lib12; - -class myClass extends lib12.Library13 { - myClass(int this.fld) : super(0); - int fld; -} - -main() { - new myClass(1); -} diff --git a/tests/language_2/prefix1_negative_test.dart b/tests/language_2/prefix1_negative_test.dart deleted file mode 100644 index ea6ae234011..00000000000 --- a/tests/language_2/prefix1_negative_test.dart +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// - -library Prefix1NegativeTest.dart; - -import "library1.dart"; - -class Prefix1NegativeTest { - static Main() { - // This is a syntax error as library1 was not imported with a prefix. - return library1.foo; - } -} - -main() { - Prefix1NegativeTest.Main(); -} diff --git a/tests/language_2/prefix2_negative_test.dart b/tests/language_2/prefix2_negative_test.dart deleted file mode 100644 index 05cf8c38e90..00000000000 --- a/tests/language_2/prefix2_negative_test.dart +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// - -library Prefix2NegativeTest.dart; - -import "library2.dart" as lib2; - -class Prefix2NegativeTest { - static Main() { - // This is a syntax error as multiple prefixes are not possible. - return lib2.Library2.main() + lib2.lib1.foo; - } -} - -main() { - Prefix2NegativeTest.Main(); -} diff --git a/tests/language_2/prefix4_negative_test.dart b/tests/language_2/prefix4_negative_test.dart deleted file mode 100644 index 5063274b849..00000000000 --- a/tests/language_2/prefix4_negative_test.dart +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// - -library Prefix4NegativeTest.dart; - -import "package:expect/expect.dart"; -import "library10.dart"; - -class Prefix4NegativeTest { - static Test1() { - // Library prefixes in the imported libraries should not be visible here. - var result = 0; - var obj = new lib11.Library11(1); - result = obj.fld; - Expect.equals(1, result); - result += obj.func(); - Expect.equals(3, result); - } -} - -main() { - Prefix4NegativeTest.Test1(); -} diff --git a/tests/language_2/prefix5_negative_test.dart b/tests/language_2/prefix5_negative_test.dart deleted file mode 100644 index 930a66bde50..00000000000 --- a/tests/language_2/prefix5_negative_test.dart +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -library Prefix5NegativeTest.dart; - -import "package:expect/expect.dart"; -import "library10.dart"; - -class Prefix5NegativeTest { - static Test1() { - // Library prefixes in the imported libraries should not be visible here. - var result = 0; - result += lib11.Library11.static_func(); - Expect.equals(6, result); - result += lib11.Library11.static_fld; - Expect.equals(10, result); - } -} - -main() { - Prefix5NegativeTest.Test1(); -} diff --git a/tests/language_2/prefix6_negative_test.dart b/tests/language_2/prefix6_negative_test.dart deleted file mode 100644 index d0ee6403a3f..00000000000 --- a/tests/language_2/prefix6_negative_test.dart +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// - -library Prefix6NegativeTest.dart; - -import "library10.dart" as lib10; - -class Prefix6NegativeTest { - static Test1() { - // Variables in the local scope hide the library prefix. - var lib10 = 0; - var result = 0; - result += lib10.Library10.static_func(); // This should fail. - } -} - -main() { - Prefix6NegativeTest.Test1(); -} diff --git a/tests/language_2/prefix8_negative_test.dart b/tests/language_2/prefix8_negative_test.dart deleted file mode 100644 index 321bf919347..00000000000 --- a/tests/language_2/prefix8_negative_test.dart +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. -// - -import "package:expect/expect.dart"; - -// Local variables can shadow class names and hence should result in an -// error. - -class Test { - Test.named(int this.fld); - int fld; -} - -main() { - var Test; - var i = new Test.named(10); // This should be an error. - Expect.equals(10, i.fld); -} diff --git a/tests/language_2/prefix3_negative_test.dart b/tests/language_2/prefix_import_collision_test.dart similarity index 90% rename from tests/language_2/prefix3_negative_test.dart rename to tests/language_2/prefix_import_collision_test.dart index 2308f7c9f89..5540dde58cc 100644 --- a/tests/language_2/prefix3_negative_test.dart +++ b/tests/language_2/prefix_import_collision_test.dart @@ -1,17 +1,13 @@ // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// // Using the same prefix name while importing two different libraries is // not an error but both library1.dart and library2.dart define 'foo' which // results in a duplicate definition error. - -library Prefix3NegativeTest.dart; - import "library1.dart" as lib2; // defines 'foo'. import "library2.dart" as lib2; // also defines 'foo'. main() { - lib2.foo = 1; + lib2.foo = 1; //# 01: compile-time error } diff --git a/tests/language_2/prefix18_negative_test.dart b/tests/language_2/prefix_invalid_name_test.dart similarity index 63% rename from tests/language_2/prefix18_negative_test.dart rename to tests/language_2/prefix_invalid_name_test.dart index 01315383588..6b10189732a 100644 --- a/tests/language_2/prefix18_negative_test.dart +++ b/tests/language_2/prefix_invalid_name_test.dart @@ -1,11 +1,10 @@ // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// -// prefix must be a valid identifier -library Prefix18NegativeTest.dart; -import "library1.dart" as lib1.invalid; +// Prefix must be a valid identifier. +import "library1.dart" + as lib1.invalid //# 01: compile-time error + ; -main() { -} +main() {} diff --git a/tests/language_2/prefix_shadow_test.dart b/tests/language_2/prefix_shadow_test.dart new file mode 100644 index 00000000000..e385baf3140 --- /dev/null +++ b/tests/language_2/prefix_shadow_test.dart @@ -0,0 +1,33 @@ +// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +// Type parameters can shadow a library prefix. + +import "package:expect/expect.dart"; +import "library10.dart" as T; +import "library10.dart" as lib10; + +class P { + test() { + new T.Library10(10); //# 01: compile-time error + } +} + +main() { + new P().test(); + + { + // Variables in the local scope hide the library prefix. + var lib10 = 0; //# 02: compile-time error + var result = 0; + result = lib10.Library10.static_fld; + Expect.equals(4, result); + } + + { + // Shadowing is not an error. + var lib10 = 1; + Expect.equals(2, lib10 + 1); + } +} diff --git a/tests/language_2/prefix_transitive_import_prefix_test.dart b/tests/language_2/prefix_transitive_import_prefix_test.dart new file mode 100644 index 00000000000..ec1767a5935 --- /dev/null +++ b/tests/language_2/prefix_transitive_import_prefix_test.dart @@ -0,0 +1,11 @@ +// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. +import "library10.dart"; + +main() { + // Library prefixes in the imported libraries should not be visible here. + new lib11.Library11(1); //# 01: compile-time error + lib11.Library11.static_func(); //# 02: compile-time error + lib11.Library11.static_fld; //# 03: compile-time error +} diff --git a/tests/language_2/prefix11_negative_test.dart b/tests/language_2/prefix_transitive_import_test.dart similarity index 63% rename from tests/language_2/prefix11_negative_test.dart rename to tests/language_2/prefix_transitive_import_test.dart index 40df3d186a4..d71654da39c 100644 --- a/tests/language_2/prefix11_negative_test.dart +++ b/tests/language_2/prefix_transitive_import_test.dart @@ -1,13 +1,15 @@ // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// -// Symbols in libraries imported by the prefixed library should not be visible -library Prefix11NegativeTest.dart; +// Symbols in libraries imported by the prefixed library should not be visible. import "library12.dart" as lib12; main() { - var obj = new lib12.Library11(1); // Error, method should not be visible + // Class should not be visible. + new lib12.Library11(1); //# 01: compile-time error + + // Variable should not be visible. + lib12.top_level11; //# 02: compile-time error } diff --git a/tests/language_2/prefix15_negative_test.dart b/tests/language_2/prefix_unresolved_class_test.dart similarity index 62% rename from tests/language_2/prefix15_negative_test.dart rename to tests/language_2/prefix_unresolved_class_test.dart index 156c5120aad..38f3914e8f3 100644 --- a/tests/language_2/prefix15_negative_test.dart +++ b/tests/language_2/prefix_unresolved_class_test.dart @@ -1,18 +1,19 @@ // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// + // Unresolved symbols should be reported as an error. - -library Prefix15NegativeTest.dart; - import "library12.dart" as lib12; -class myClass implements lib12.Library13 { - myClass(int this.fld) : super(0); - int fld; -} +class Subclass + extends lib12.Library13 //# 01: compile-time error +{} + +class Implementer + implements lib12.Library13 //# 02: compile-time error +{} main() { - new myClass(1); + new Subclass(); + new Implementer(); } diff --git a/tests/language_2/prefix7_negative_test.dart b/tests/language_2/prefix_variable_collision_test.dart similarity index 86% rename from tests/language_2/prefix7_negative_test.dart rename to tests/language_2/prefix_variable_collision_test.dart index 21e313d8c4d..9333fd09877 100644 --- a/tests/language_2/prefix7_negative_test.dart +++ b/tests/language_2/prefix_variable_collision_test.dart @@ -1,14 +1,9 @@ // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// - -library Prefix7NegativeTest.dart; - import "library10.dart" as lib10; // Top level variables cannot shadow library prefixes, they should collide. - -var lib10; +var lib10; //# 01: compile-time error main() {} diff --git a/tests/language_2/variable_shadow_class_test.dart b/tests/language_2/variable_shadow_class_test.dart new file mode 100644 index 00000000000..628819b02d9 --- /dev/null +++ b/tests/language_2/variable_shadow_class_test.dart @@ -0,0 +1,26 @@ +// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. +import "package:expect/expect.dart"; + +// Local variables can shadow class names. + +class Test { + final int field; + Test.named(this.field); +} + +main() { + { + var Test; //# 01: compile-time error + // Now this refers to the variable. + var i = new Test.named(10); + Expect.equals(10, i.field); + } + + { + // Shadowing is allowed. + var Test = 1; + Expect.equals(2, Test + 1); + } +}