Renewed tests from built_in_identifier_prefix

The test language_2/built_in_identifier_prefix_test stated 'it is not
illegal to use a built-in identifier as a library prefix', which has
been untrue for quite a while, and then proceeded to check a number of
cases where said situation was used in practice. All of that is now
obsolete, so that test was split into several tests, each of which was
adjusted to test something which is relevant today.

The new tests include checks for the use of "known" identifiers (such
as `of`, `show`, `on` and a few more) which are mentioned explicitly
in the grammar, but which are neither built-in identifiers nor
reserved words.

The new tests gave rise to a number of status entries, including 25
crashes (so it is not just "expect `MissingCompileTimeError` here
because it's not strong mode").

Note that `Function` is considered to be a built-in identifier.
This makes no difference for the grammar, but it means that there
are no cases where `Function` is used as a library prefix.

If we insist that `Function` cannot be a built-in identifier then
we just need to add a few more grammar rules to all such things as
`import .. as Function;`, but I considered it less confusing to
include `Function` among the built-in identifiers and avoid adding
support for this.

Note that we haven't said anywhere that `Function` is a built-in
identifier, so we would need to adjust an informal/*.md file to say
that, to finish this off.

Change-Id: Ifa5bbd95022498480b7ee2e94605f81cd11d9696
Reviewed-on: https://dart-review.googlesource.com/21080
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
This commit is contained in:
Erik Ernst
2017-11-16 12:34:14 +00:00
committed by commit-bot@chromium.org
parent d66ee882d3
commit f68e5231b4
33 changed files with 1059 additions and 371 deletions
+26 -26
View File
@@ -189,7 +189,7 @@ topLevelDefinition
EXTERNAL setterSignature ';'
| (getterSignature functionBodyPrefix) => getterSignature functionBody
| (type? SET identifier '(') => setterSignature functionBody
| (type? identifierNotFunction typeParameters? '(') =>
| (type? identifierNotFUNCTION typeParameters? '(') =>
functionSignature functionBody
| (FINAL | CONST) type? staticFinalDeclarationList ';'
| topLevelVariableDeclaration ';'
@@ -223,7 +223,7 @@ initializedIdentifierList
;
functionSignature
: type? identifierNotFunction formalParameterPart
: type? identifierNotFUNCTION formalParameterPart
;
functionBodyPrefix
@@ -276,7 +276,7 @@ normalFormalParameter
;
normalFormalParameterNoMetadata
: (COVARIANT? type? identifierNotFunction formalParameterPart) =>
: (COVARIANT? type? identifierNotFUNCTION formalParameterPart) =>
functionFormalParameter
| (finalConstVarOrType? THIS) => fieldFormalParameter
| simpleFormalParameter
@@ -284,7 +284,7 @@ normalFormalParameterNoMetadata
// NB: It is an anomaly that a functionFormalParameter cannot be FINAL.
functionFormalParameter
: COVARIANT? type? identifierNotFunction formalParameterPart
: COVARIANT? type? identifierNotFUNCTION formalParameterPart
;
simpleFormalParameter
@@ -329,7 +329,7 @@ classMemberDefinition
methodSignature
: (constructorSignature ':') => constructorSignature initializers
| (FACTORY constructorName '(') => factoryConstructorSignature
| (STATIC? type? identifierNotFunction typeParameters? '(') =>
| (STATIC? type? identifierNotFUNCTION typeParameters? '(') =>
STATIC? functionSignature
| (STATIC? type? GET) => STATIC? getterSignature
| (STATIC? type? SET) => STATIC? setterSignature
@@ -854,25 +854,25 @@ assignableSelector
| '?.' identifier
;
identifierNotFunction
identifierNotFUNCTION
: IDENTIFIER
| ABSTRACT
| AS
| COVARIANT
| DEFERRED
| DYNAMIC
| EXPORT
| EXTERNAL
| FACTORY
| GET
| IMPLEMENTS
| IMPORT
| LIBRARY
| OPERATOR
| PART
| SET
| STATIC
| TYPEDEF
| ABSTRACT // Built-in identifier.
| AS // Built-in identifier.
| COVARIANT // Built-in identifier.
| DEFERRED // Built-in identifier.
| DYNAMIC // Built-in identifier.
| EXPORT // Built-in identifier.
| EXTERNAL // Built-in identifier.
| FACTORY // Built-in identifier.
| GET // Built-in identifier.
| IMPLEMENTS // Built-in identifier.
| IMPORT // Built-in identifier.
| LIBRARY // Built-in identifier.
| OPERATOR // Built-in identifier.
| PART // Built-in identifier.
| SET // Built-in identifier.
| STATIC // Built-in identifier.
| TYPEDEF // Built-in identifier.
| HIDE // Not a built-in identifier.
| OF // Not a built-in identifier.
| ON // Not a built-in identifier.
@@ -882,8 +882,8 @@ identifierNotFunction
;
identifier
: identifierNotFunction
| FUNCTION // Not a built-in identifier.
: identifierNotFUNCTION
| FUNCTION // Built-in identifier that can be used as a type.
;
qualified
@@ -894,7 +894,7 @@ qualified
typeIdentifier
: IDENTIFIER
| DYNAMIC // The only built-in identifier that can be used as a type.
| DYNAMIC // Built-in identifier that can be used as a type.
| HIDE // Not a built-in identifier.
| OF // Not a built-in identifier.
| ON // Not a built-in identifier.
@@ -4,20 +4,20 @@
// Check that we cannot use a pseudo keyword at the class level code.
// Pseudo keywords are not allowed to be used as class names.
class abstract { } // //# 01: compile-time error
class as { } // //# 19: compile-time error
class abstract { } // //# 01: syntax error
class as { } // //# 19: syntax error
class dynamic { } // //# 04: compile-time error
class export { } // //# 17: compile-time error
class external { } // //# 20: compile-time error
class factory { } // //# 05: compile-time error
class get { } // //# 06: compile-time error
class implements { } // //# 07: compile-time error
class import { } // //# 08: compile-time error
class library { } // //# 10: compile-time error
class operator { } // //# 12: compile-time error
class part { } // //# 18: compile-time error
class set { } // //# 13: compile-time error
class static { } // //# 15: compile-time error
class typedef { } // //# 16: compile-time error
class export { } // //# 17: syntax error
class external { } // //# 20: syntax error
class factory { } // //# 05: syntax error
class get { } // //# 06: syntax error
class implements { } // //# 07: syntax error
class import { } // //# 08: syntax error
class library { } // //# 10: syntax error
class operator { } // //# 12: syntax error
class part { } // //# 18: syntax error
class set { } // //# 13: syntax error
class static { } // //# 15: syntax error
class typedef { } // //# 16: syntax error
main() {}
@@ -0,0 +1,91 @@
// Copyright (c) 2017, 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.
// From The Dart Programming Language Specification, section 16.33
// "Identifier Reference":
//
// "A built-in identifier is one of the identifiers produced by the
// production BUILT_IN_IDENTIFIER. It is a compile-time error if a
// built-in identifier is used as the declared name of a prefix, class,
// type parameter or type alias. It is a compile-time error to use a
// built-in identifier other than dynamic in a type annotation or type
// parameter."
//
// Observation: it is illegal to use a built-in identifier as a library
// prefix.
// Dart test for using a built-in identifier as a library prefix.
import 'dart:core' deferred as abstract; // //# 01: compile-time error
import 'dart:core' deferred as as; // //# 02: compile-time error
import 'dart:core' deferred as covariant; // //# 03: compile-time error
import 'dart:core' deferred as deferred; // //# 04: compile-time error
import 'dart:core' deferred as dynamic; // //# 05: compile-time error
import 'dart:core' deferred as export; // //# 06: compile-time error
import 'dart:core' deferred as external; // //# 07: compile-time error
import 'dart:core' deferred as factory; // //# 08: compile-time error
import 'dart:core' deferred as get; // //# 09: compile-time error
import 'dart:core' deferred as implements; // //# 10: compile-time error
import 'dart:core' deferred as import; // //# 11: compile-time error
import 'dart:core' deferred as library; // //# 12: compile-time error
import 'dart:core' deferred as operator; // //# 13: compile-time error
import 'dart:core' deferred as part; // //# 14: compile-time error
import 'dart:core' deferred as set; // //# 15: compile-time error
import 'dart:core' deferred as static; // //# 16: compile-time error
import 'dart:core' deferred as typedef; // //# 17: compile-time error
import 'dart:core' as abstract; // //# 18: syntax error
import 'dart:core' as as; // //# 19: syntax error
import 'dart:core' as covariant; // //# 20: syntax error
import 'dart:core' as deferred; // //# 21: syntax error
import 'dart:core' as dynamic; // //# 22: compile-time error
import 'dart:core' as export; // //# 23: syntax error
import 'dart:core' as external; // //# 24: syntax error
import 'dart:core' as factory; // //# 25: syntax error
import 'dart:core' as get; // //# 26: syntax error
import 'dart:core' as implements; // //# 27: syntax error
import 'dart:core' as import; // //# 28: syntax error
import 'dart:core' as library; // //# 29: syntax error
import 'dart:core' as operator; // //# 30: syntax error
import 'dart:core' as part; // //# 31: syntax error
import 'dart:core' as set; // //# 32: syntax error
import 'dart:core' as static; // //# 33: syntax error
import 'dart:core' as typedef; // //# 34: syntax error
main() {
abstract.loadLibrary(); // //# 01: continued
as.loadLibrary(); // //# 02: continued
covariant.loadLibrary(); // //# 03: continued
deferred.loadLibrary(); // //# 04: continued
dynamic.loadLibrary(); // //# 05: continued
export.loadLibrary(); // //# 06: continued
external.loadLibrary(); // //# 07: continued
factory.loadLibrary(); // //# 08: continued
get.loadLibrary(); // //# 09: continued
implements.loadLibrary(); // //# 10: continued
import.loadLibrary(); // //# 11: continued
library.loadLibrary(); // //# 12: continued
operator.loadLibrary(); // //# 13: continued
part.loadLibrary(); // //# 14: continued
set.loadLibrary(); // //# 15: continued
static.loadLibrary(); // //# 16: continued
typedef.loadLibrary(); // //# 17: continued
abstract.int x = 42; // //# 18: continued
as.int x = 42; // //# 19: continued
covariant.int x = 42; // //# 20: continued
deferred.int x = 42; // //# 21: continued
dynamic.int x = 42; // //# 22: continued
export.int x = 42; // //# 23: continued
external.int x = 42; // //# 24: continued
factory.int x = 42; // //# 25: continued
get.int x = 42; // //# 26: continued
implements.int x = 42; // //# 27: continued
import.int x = 42; // //# 28: continued
library.int x = 42; // //# 29: continued
operator.int x = 42; // //# 30: continued
part.int x = 42; // //# 31: continued
set.int x = 42; // //# 32: continued
static.int x = 42; // //# 33: continued
typedef.int x = 42; // //# 34: continued
}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 abstract;
class A {}
class B<T> {}
class C<T, S> {}
@@ -0,0 +1,11 @@
// Copyright (c) 2012, 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 async;
class A {}
class B<T> {}
class C<T, S> {}
@@ -0,0 +1,11 @@
// Copyright (c) 2012, 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 await;
class A {}
class B<T> {}
class C<T, S> {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 dynamic;
class A {}
class B<T> {}
class C<T, S> {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 export;
class A {}
class B<T> {}
class C<T, S> {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 external;
class A {}
class B<T> {}
class C<T, S> {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 factory;
class A {}
class B<T> {}
class C<T, S> {}
@@ -2,7 +2,7 @@
// 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 part;
library hide;
class A {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 implements;
class A {}
class B<T> {}
class C<T, S> {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 import;
class A {}
class B<T> {}
class C<T, S> {}
@@ -2,7 +2,7 @@
// 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 as;
library of;
class A {}
@@ -2,7 +2,7 @@
// 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 get;
library on;
class A {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 operator;
class A {}
class B<T> {}
class C<T, S> {}
@@ -2,7 +2,7 @@
// 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 set;
library show;
class A {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 static;
class A {}
class B<T> {}
class C<T, S> {}
@@ -0,0 +1,11 @@
// Copyright (c) 2012, 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 sync;
class A {}
class B<T> {}
class C<T, S> {}
@@ -1,11 +0,0 @@
// Copyright (c) 2012, 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 typedef;
class A {}
class B<T> {}
class C<T, S> {}
@@ -0,0 +1,11 @@
// Copyright (c) 2012, 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 yield;
class A {}
class B<T> {}
class C<T, S> {}
@@ -1,216 +0,0 @@
// Copyright (c) 2012, 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.
// Test that built-in identifiers can be used as library prefixes.
// From The Dart Programming Language Specification, section 11.30
// "Identifier Reference":
//
// "A built-in identifier is one of the identifiers produced by the
// production BUILT IN IDENTIFIER. It is a compile-time error if a
// built-in identifier is used as the declared name of a class, type
// parameter or type alias. It is a compile-time error to use a
// built-in identifier other than dynamic as a type annotation."
//
// Observation: it is not illegal to use a built-in identifier as a library
// prefix.
//
// Observation: it is not legal to use a built-in identifier as a type
// annotation. A type annotation is not fully defined in the
// specification, so we assume this means that the grammar production
// "type" cannot match a built-in identifier. Unfortunately, this
// doesn't prevent us from using built-in identifiers *in* type
// annotations. For example, "final abstract foo;" is illegal as
// "abstract" is used as a type annotation. However, "final
// abstract<dynamic> foo;" is not illegal because "abstract" is used
// as a typeName.
import "package:expect/expect.dart";
import 'built_in_identifier_prefix_library_abstract.dart' as abstract;
import 'built_in_identifier_prefix_library_as.dart' as as;
import 'built_in_identifier_prefix_library_dynamic.dart' as dynamic;
import 'built_in_identifier_prefix_library_export.dart' as export;
import 'built_in_identifier_prefix_library_external.dart' as external;
import 'built_in_identifier_prefix_library_factory.dart' as factory;
import 'built_in_identifier_prefix_library_get.dart' as get;
import 'built_in_identifier_prefix_library_implements.dart' as implements;
import 'built_in_identifier_prefix_library_import.dart' as import;
import 'built_in_identifier_prefix_library_library.dart' as library;
import 'built_in_identifier_prefix_library_operator.dart' as operator;
import 'built_in_identifier_prefix_library_part.dart' as part;
import 'built_in_identifier_prefix_library_set.dart' as set;
import 'built_in_identifier_prefix_library_static.dart' as static;
import 'built_in_identifier_prefix_library_typedef.dart' as typedef;
abstract.A _abstract = new abstract.A();
as.A _as = new as.A();
dynamic.A _dynamic = new dynamic.A();
export.A _export = new export.A();
external.A _external = new external.A();
factory.A _factory = new factory.A();
get.A _get = new get.A();
implements.A _implements = new implements.A();
import.A _import = new import.A();
library.A _library = new library.A();
operator.A _operator = new operator.A();
part.A _part = new part.A();
set.A _set = new set.A();
static.A _static = new static.A();
typedef.A _typedef = new typedef.A();
abstract<dynamic> generic_abstract = new abstract.A();
as<dynamic> generic_as = new as.A();
dynamic<dynamic> generic_dynamic = new dynamic.A();
export<dynamic> generic_export = new export.A();
external<dynamic> generic_external = new external.A();
factory<dynamic> generic_factory = new factory.A();
get<dynamic> generic_get = new get.A();
implements<dynamic> generic_implements = new implements.A();
import<dynamic> generic_import = new import.A();
library<dynamic> generic_library = new library.A();
operator<dynamic> generic_operator = new operator.A();
part<dynamic> generic_part = new part.A();
set<dynamic> generic_set = new set.A();
static<dynamic> generic_static = new static.A();
typedef<dynamic> generic_typedef = new typedef.A();
abstract.B<dynamic> dynamic_B_abstract = new abstract.B();
as.B<dynamic> dynamic_B_as = new as.B();
dynamic.B<dynamic> dynamic_B_dynamic = new dynamic.B();
export.B<dynamic> dynamic_B_export = new export.B();
external.B<dynamic> dynamic_B_external = new external.B();
factory.B<dynamic> dynamic_B_factory = new factory.B();
get.B<dynamic> dynamic_B_get = new get.B();
implements.B<dynamic> dynamic_B_implements = new implements.B();
import.B<dynamic> dynamic_B_import = new import.B();
library.B<dynamic> dynamic_B_library = new library.B();
operator.B<dynamic> dynamic_B_operator = new operator.B();
part.B<dynamic> dynamic_B_part = new part.B();
set.B<dynamic> dynamic_B_set = new set.B();
static.B<dynamic> dynamic_B_static = new static.B();
typedef.B<dynamic> dynamic_B_typedef = new typedef.B();
abstract.B<abstract<dynamic>> parameterized_B_abstract = new abstract.B();
as.B<as<dynamic>> parameterized_B_as = new as.B();
dynamic.B<dynamic<dynamic>> parameterized_B_dynamic = new dynamic.B();
export.B<export<dynamic>> parameterized_B_export = new export.B();
external.B<external<dynamic>> parameterized_B_external = new external.B();
factory.B<factory<dynamic>> parameterized_B_factory = new factory.B();
get.B<get<dynamic>> parameterized_B_get = new get.B();
implements.B<implements<dynamic>> parameterized_B_implements =
new implements.B();
import.B<import<dynamic>> parameterized_B_import = new import.B();
library.B<library<dynamic>> parameterized_B_library = new library.B();
operator.B<operator<dynamic>> parameterized_B_operator = new operator.B();
part.B<part<dynamic>> parameterized_B_part = new part.B();
set.B<set<dynamic>> parameterized_B_set = new set.B();
static.B<static<dynamic>> parameterized_B_static = new static.B();
typedef.B<typedef<dynamic>> parameterized_B_typedef = new typedef.B();
class UseA {
abstract.A abstract = new abstract.A();
as.A as = new as.A();
dynamic.A dynamic = new dynamic.A();
export.A export = new export.A();
external.A external = new external.A();
factory.A factory = new factory.A();
get.A get = new get.A();
implements.A implements = new implements.A();
import.A import = new import.A();
library.A library = new library.A();
operator.A operator = new operator.A();
part.A part = new part.A();
set.A set = new set.A();
static.A static = new static.A();
typedef.A typedef = new typedef.A();
}
main() {
bool assertionsEnabled = false;
assert(assertionsEnabled = true);
Expect.isTrue(_abstract is abstract.A);
Expect.isTrue(_as is as.A);
Expect.isTrue(_dynamic is dynamic.A);
Expect.isTrue(_export is export.A);
Expect.isTrue(_external is external.A);
Expect.isTrue(_factory is factory.A);
Expect.isTrue(_get is get.A);
Expect.isTrue(_implements is implements.A);
Expect.isTrue(_import is import.A);
Expect.isTrue(_library is library.A);
Expect.isTrue(_operator is operator.A);
Expect.isTrue(_part is part.A);
Expect.isTrue(_set is set.A);
Expect.isTrue(_static is static.A);
Expect.isTrue(_typedef is typedef.A);
Expect.isTrue(dynamic_B_abstract is abstract.B);
Expect.isTrue(dynamic_B_as is as.B);
Expect.isTrue(dynamic_B_dynamic is dynamic.B);
Expect.isTrue(dynamic_B_export is export.B);
Expect.isTrue(dynamic_B_external is external.B);
Expect.isTrue(dynamic_B_factory is factory.B);
Expect.isTrue(dynamic_B_get is get.B);
Expect.isTrue(dynamic_B_implements is implements.B);
Expect.isTrue(dynamic_B_import is import.B);
Expect.isTrue(dynamic_B_library is library.B);
Expect.isTrue(dynamic_B_operator is operator.B);
Expect.isTrue(dynamic_B_part is part.B);
Expect.isTrue(dynamic_B_set is set.B);
Expect.isTrue(dynamic_B_static is static.B);
Expect.isTrue(dynamic_B_typedef is typedef.B);
var x = new UseA();
Expect.isTrue(x.abstract is abstract.A);
Expect.isTrue(x.as is as.A);
Expect.isTrue(x.dynamic is dynamic.A);
Expect.isTrue(x.export is export.A);
Expect.isTrue(x.external is external.A);
Expect.isTrue(x.factory is factory.A);
Expect.isTrue(x.get is get.A);
Expect.isTrue(x.implements is implements.A);
Expect.isTrue(x.import is import.A);
Expect.isTrue(x.library is library.A);
Expect.isTrue(x.operator is operator.A);
Expect.isTrue(x.part is part.A);
Expect.isTrue(x.set is set.A);
Expect.isTrue(x.static is static.A);
Expect.isTrue(x.typedef is typedef.A);
// Most of the following variables have malformed type annotations.
if (assertionsEnabled) return;
Expect.isTrue(generic_abstract is abstract.A);
Expect.isTrue(generic_as is as.A);
Expect.isTrue(generic_dynamic is dynamic.A);
Expect.isTrue(generic_export is export.A);
Expect.isTrue(generic_external is external.A);
Expect.isTrue(generic_factory is factory.A);
Expect.isTrue(generic_get is get.A);
Expect.isTrue(generic_implements is implements.A);
Expect.isTrue(generic_import is import.A);
Expect.isTrue(generic_library is library.A);
Expect.isTrue(generic_operator is operator.A);
Expect.isTrue(generic_part is part.A);
Expect.isTrue(generic_set is set.A);
Expect.isTrue(generic_static is static.A);
Expect.isTrue(generic_typedef is typedef.A);
Expect.isTrue(parameterized_B_abstract is abstract.B);
Expect.isTrue(parameterized_B_as is as.B);
Expect.isTrue(parameterized_B_dynamic is dynamic.B);
Expect.isTrue(parameterized_B_export is export.B);
Expect.isTrue(parameterized_B_external is external.B);
Expect.isTrue(parameterized_B_factory is factory.B);
Expect.isTrue(parameterized_B_get is get.B);
Expect.isTrue(parameterized_B_implements is implements.B);
Expect.isTrue(parameterized_B_import is import.B);
Expect.isTrue(parameterized_B_library is library.B);
Expect.isTrue(parameterized_B_operator is operator.B);
Expect.isTrue(parameterized_B_part is part.B);
Expect.isTrue(parameterized_B_set is set.B);
Expect.isTrue(parameterized_B_static is static.B);
Expect.isTrue(parameterized_B_typedef is typedef.B);
}
@@ -0,0 +1,117 @@
// Copyright (c) 2017, 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.
// From The Dart Programming Language Specification, section 16.33
// "Identifier Reference":
//
// "A built-in identifier is one of the identifiers produced by the
// production BUILT_IN_IDENTIFIER. It is a compile-time error if a
// built-in identifier is used as the declared name of a prefix, class,
// type parameter or type alias. It is a compile-time error to use a
// built-in identifier other than dynamic in a type annotation or type
// parameter."
//
// Observation: it is illegal to use a built-in identifier other than
// `dynamic` in a type annotation. A type annotation is not fully defined
// in the specification, so we assume this means that the grammar
// production "type" cannot be a built-in identifier, and it cannot contain
// a built-in identifier at a location where it must denote a type.
//
// Note that we have several ways to use built-in identifiers other than
// `dynamic` in other locations in a type, e.g., `Function(int set)`.
abstract x = null; // //# 01: syntax error
as x = null; // //# 02: syntax error
covariant x = null; // //# 03: syntax error
deferred x = null; // //# 04: syntax error
dynamic x = null; // //# 05: ok
export x = null; // //# 06: syntax error
external x = null; // //# 07: syntax error
factory x = null; // //# 08: syntax error
get x = null; // //# 09: syntax error
implements x = null; // //# 10: syntax error
import x = null; // //# 11: syntax error
library x = null; // //# 12: syntax error
operator x = null; // //# 13: syntax error
part x = null; // //# 14: syntax error
set x = null; // //# 15: syntax error
static x = null; // //# 16: syntax error
typedef x = null; // //# 17: syntax error
abstract<int> x = null; // //# 18: syntax error
as<int> x = null; // //# 19: syntax error
covariant<int> x = null; // //# 20: syntax error
deferred<int> x = null; // //# 21: syntax error
dynamic<int> x = null; // //# 22: compile-time error
export<int> x = null; // //# 23: syntax error
external<int> x = null; // //# 24: syntax error
factory<int> x = null; // //# 25: syntax error
get<int> x = null; // //# 26: syntax error
implements<int> x = null; // //# 27: syntax error
import<int> x = null; // //# 28: syntax error
library<int> x = null; // //# 29: syntax error
operator<int> x = null; // //# 30: syntax error
part<int> x = null; // //# 31: syntax error
set<int> x = null; // //# 32: syntax error
static<int> x = null; // //# 33: syntax error
typedef<int> x = null; // //# 34: syntax error
List<abstract> x = null; // //# 35: syntax error
List<as> x = null; // //# 36: syntax error
List<covariant> x = null; // //# 37: syntax error
List<deferred> x = null; // //# 38: syntax error
List<dynamic> x = null; // //# 39: ok
List<export> x = null; // //# 40: syntax error
List<external> x = null; // //# 41: syntax error
List<factory> x = null; // //# 42: syntax error
List<get> x = null; // //# 43: syntax error
List<implements> x = null; // //# 44: syntax error
List<import> x = null; // //# 45: syntax error
List<library> x = null; // //# 46: syntax error
List<operator> x = null; // //# 47: syntax error
List<part> x = null; // //# 48: syntax error
List<set> x = null; // //# 49: syntax error
List<static> x = null; // //# 50: syntax error
List<typedef> x = null; // //# 51: syntax error
Function(abstract) x = null; // //# 52: syntax error
Function(as) x = null; // //# 53: syntax error
Function(covariant) x = null; // //# 54: syntax error
Function(deferred) x = null; // //# 55: syntax error
Function(dynamic) x = null; // //# 56: ok
Function(export) x = null; // //# 57: syntax error
Function(external) x = null; // //# 58: syntax error
Function(factory) x = null; // //# 59: syntax error
Function(get) x = null; // //# 60: syntax error
Function(implements) x = null; // //# 61: syntax error
Function(import) x = null; // //# 62: syntax error
Function(library) x = null; // //# 63: syntax error
Function(operator) x = null; // //# 64: syntax error
Function(part) x = null; // //# 65: syntax error
Function(set) x = null; // //# 66: syntax error
Function(static) x = null; // //# 67: syntax error
Function(typedef) x = null; // //# 68: syntax error
abstract Function() x = null; // //# 69: syntax error
as Function() x = null; // //# 70: syntax error
covariant Function() x = null; // //# 71: syntax error
deferred Function() x = null; // //# 72: syntax error
dynamic Function() x = null; // //# 73: ok
export Function() x = null; // //# 74: syntax error
external Function() x = null; // //# 75: syntax error
factory Function() x = null; // //# 76: syntax error
get Function() x = null; // //# 77: syntax error
implements Function() x = null; // //# 78: syntax error
import Function() x = null; // //# 79: syntax error
library Function() x = null; // //# 80: syntax error
operator Function() x = null; // //# 81: syntax error
part Function() x = null; // //# 82: syntax error
set Function() x = null; // //# 83: syntax error
static Function() x = null; // //# 84: syntax error
typedef Function() x = null; // //# 85: syntax error
main() {
var x = null; // //# none: ok
x.toString();
}
@@ -0,0 +1,78 @@
// Copyright (c) 2017, 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.
// Test that identifiers which are used explicitly in the grammar but are
// not built-in identifiers can be used as library prefixes.
// The identifiers listed below are mentioned in the grammar, but none of
// them is a reserved word or a built-in identifier. Such an identifier can
// be used as a library prefix; this test puts such prefixes in wrong
// locations to verify that this is being handled. Here are the 'known'
// identifiers: `async`, `await`, `hide`, `of`, `on`, `show`, `sync`, `yield`.
import "package:expect/expect.dart";
import 'built_in_identifier_prefix_library_async.dart' as async;
import 'built_in_identifier_prefix_library_await.dart' as await;
import 'built_in_identifier_prefix_library_hide.dart' as hide;
import 'built_in_identifier_prefix_library_of.dart' as of;
import 'built_in_identifier_prefix_library_on.dart' as on;
import 'built_in_identifier_prefix_library_show.dart' as show;
import 'built_in_identifier_prefix_library_sync.dart' as sync;
import 'built_in_identifier_prefix_library_yield.dart' as yield;
async<dynamic> _async = new async.A(); //# 01: compile-time error
await<dynamic> _await = new await.A(); //# 02: compile-time error
hide<dynamic> _hide = new hide.A(); //# 03: compile-time error
of<dynamic> _of = new of.A(); //# 04: compile-time error
on<dynamic> _on = new on.A(); //# 05: compile-time error
show<dynamic> _show = new show.A(); //# 06: compile-time error
sync<dynamic> _sync = new sync.A(); //# 07: compile-time error
yield<dynamic> _yield = new yield.A(); //# 08: compile-time error
async.B<async> _B_async = new async.B(); //# 09: compile-time error
await.B<await> _B_await = new await.B(); //# 10: compile-time error
hide.B<hide> _B_hide = new hide.B(); //# 11: compile-time error
of.B<of> _B_of = new of.B(); //# 12: compile-time error
on.B<on> _B_on = new on.B(); //# 13: compile-time error
show.B<show> _B_show = new show.B(); //# 14: compile-time error
sync.B<sync> _B_sync = new sync.B(); //# 15: compile-time error
yield.B<yield> _B_yield = new yield.B(); //# 16: compile-time error
async.B<async<dynamic>> _B2_async = new async.B(); //# 17: compile-time error
await.B<await<dynamic>> _B2_await = new await.B(); //# 18: compile-time error
hide.B<hide<dynamic>> _B2_hide = new hide.B(); //# 19: compile-time error
of.B<of<dynamic>> _B2_of = new of.B(); //# 20: compile-time error
on.B<on<dynamic>> _B2_on = new on.B(); //# 21: compile-time error
show.B<show<dynamic>> _B2_show = new show.B(); //# 22: compile-time error
sync.B<sync<dynamic>> _B2_sync = new sync.B(); //# 23: compile-time error
yield.B<yield<dynamic>> _B2_yield = new yield.B(); //# 24: compile-time error
main() {
Expect.isTrue(_async is async.A); //# 01: continued
Expect.isTrue(_await is await.A); //# 02: continued
Expect.isTrue(_hide is hide.A); //# 03: continued
Expect.isTrue(_of is of.A); //# 04: continued
Expect.isTrue(_on is on.A); //# 05: continued
Expect.isTrue(_show is show.A); //# 06: continued
Expect.isTrue(_sync is sync.A); //# 07: continued
Expect.isTrue(_yield is yield.A); //# 08: continued
Expect.isTrue(_B_async is async.B); //# 09: continued
Expect.isTrue(_B_await is await.B); //# 10: continued
Expect.isTrue(_B_hide is hide.B); //# 11: continued
Expect.isTrue(_B_of is of.B); //# 12: continued
Expect.isTrue(_B_on is on.B); //# 13: continued
Expect.isTrue(_B_show is show.B); //# 14: continued
Expect.isTrue(_B_sync is sync.B); //# 15: continued
Expect.isTrue(_B_yield is yield.B); //# 16: continued
Expect.isTrue(_B2_async is async.B); //# 17: continued
Expect.isTrue(_B2_await is await.B); //# 18: continued
Expect.isTrue(_B2_hide is hide.B); //# 19: continued
Expect.isTrue(_B2_of is of.B); //# 20: continued
Expect.isTrue(_B2_on is on.B); //# 21: continued
Expect.isTrue(_B2_show is show.B); //# 22: continued
Expect.isTrue(_B2_sync is sync.B); //# 23: continued
Expect.isTrue(_B2_yield is yield.B); //# 24: continued
}
@@ -0,0 +1,78 @@
// Copyright (c) 2017, 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.
// The identifiers listed below are mentioned in the grammar, but none of
// them is a reserved word or a built-in identifier. Such an identifier can
// be used as library prefix. Here are said 'known' identifiers:
//
// `async`, `await`, `hide`, `of`, `on`, `show`, `sync`, `yield`.
import "package:expect/expect.dart";
import 'built_in_identifier_prefix_library_async.dart' as async;
import 'built_in_identifier_prefix_library_await.dart' as await;
import 'built_in_identifier_prefix_library_hide.dart' as hide;
import 'built_in_identifier_prefix_library_of.dart' as of;
import 'built_in_identifier_prefix_library_on.dart' as on;
import 'built_in_identifier_prefix_library_show.dart' as show;
import 'built_in_identifier_prefix_library_sync.dart' as sync;
import 'built_in_identifier_prefix_library_yield.dart' as yield;
async.A _async = new async.A();
await.A _await = new await.A();
hide.A _hide = new hide.A();
of.A _of = new of.A();
on.A _on = new on.A();
show.A _show = new show.A();
sync.A _sync = new sync.A();
yield.A _yield = new yield.A();
async.B<dynamic> dynamic_B_async = new async.B();
await.B<dynamic> dynamic_B_await = new await.B();
hide.B<dynamic> dynamic_B_hide = new hide.B();
of.B<dynamic> dynamic_B_of = new of.B();
on.B<dynamic> dynamic_B_on = new on.B();
show.B<dynamic> dynamic_B_show = new show.B();
sync.B<dynamic> dynamic_B_sync = new sync.B();
yield.B<dynamic> dynamic_B_yield = new yield.B();
class UseA {
async.A _async = new async.A();
await.A _await = new await.A();
hide.A _hide = new hide.A();
of.A _of = new of.A();
on.A _on = new on.A();
show.A _show = new show.A();
sync.A _sync = new sync.A();
yield.A _yield = new yield.A();
}
main() {
Expect.isTrue(_async is async.A);
Expect.isTrue(_await is await.A);
Expect.isTrue(_hide is hide.A);
Expect.isTrue(_of is of.A);
Expect.isTrue(_on is on.A);
Expect.isTrue(_show is show.A);
Expect.isTrue(_sync is sync.A);
Expect.isTrue(_yield is yield.A);
Expect.isTrue(dynamic_B_async is async.B);
Expect.isTrue(dynamic_B_await is await.B);
Expect.isTrue(dynamic_B_hide is hide.B);
Expect.isTrue(dynamic_B_of is of.B);
Expect.isTrue(dynamic_B_on is on.B);
Expect.isTrue(dynamic_B_show is show.B);
Expect.isTrue(dynamic_B_sync is sync.B);
Expect.isTrue(dynamic_B_yield is yield.B);
var x = new UseA();
Expect.isTrue(x._async is async.A);
Expect.isTrue(x._await is await.A);
Expect.isTrue(x._hide is hide.A);
Expect.isTrue(x._of is of.A);
Expect.isTrue(x._on is on.A);
Expect.isTrue(x._show is show.A);
Expect.isTrue(x._sync is sync.A);
Expect.isTrue(x._yield is yield.A);
}
@@ -0,0 +1,73 @@
// Copyright (c) 2017, 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.
// The identifiers listed below are mentioned in the grammar, but none of
// them is a reserved word or a built-in identifier. Such an identifier can
// be used just like all other identifiers, with the exceptions mentioned
// below. Here are said 'known' identifiers:
//
// `async`, `await`, `hide`, `of`, `on`, `show`, `sync`, `yield`
//
// The following exceptions apply:
//
// It is a compile-time error to use `async`, `await`, or `yield` as an
// identifier in the body of a function marked `async`, `async*`, or
// `sync*`.
//
// It is a compile-time error if an asynchronous for-in appears inside a
// synchronous function.
import 'dart:async';
Future<int> f1() async {
int async = 1; //# 01: syntax error
int await = 1; //# 02: syntax error
int yield = 1; //# 03: syntax error
Stream<int> s = new Stream<int>.fromFuture(new Future<int>.value(1));
await for (int i in s) {
return i + 1;
}
}
Stream<int> f2() async* {
int async = 1; //# 04: syntax error
int await = 1; //# 05: syntax error
int yield = 1; //# 06: syntax error
Stream<int> s = new Stream<int>.fromFuture(new Future<int>.value(1));
await for (var i in s) {
yield i + 1;
}
}
Iterable<int> f3() sync* {
int async = 1; //# 07: syntax error
int await = 1; //# 08: syntax error
int yield = 1; //# 09: syntax error
Stream<int> s = new Stream<int>.fromFuture(new Future<int>.value(1));
await for (int i in s) { //# 10: compile-time error
yield i + 1; //# 10: continued
} //# 10: continued
}
int f4() {
int async = 1;
int await = 1;
int yield = 1;
Stream s = new Stream<int>.fromFuture(new Future<int>.value(1));
await for (int i in s) { //# 11: compile-time error
return i + 1; //# 11: continued
} //# 11: continued
}
main() {
Future<int> f = f1();
Stream s = f2();
Iterable<int> i = f3();
int x = f4();
}
@@ -0,0 +1,370 @@
// Copyright (c) 2017, 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.
// The identifiers listed below are mentioned in the grammar, but none of
// them is a reserved word or a built-in identifier. Such an identifier can
// be used just like all other identifiers, with a few exceptions. Here are
// said 'known' identifiers:
//
// `async`, `await`, `hide`, `of`, `on`, `show`, `sync`, `yield`
//
// This test contains various declarations of entities whose name is one of
// these known identifiers.
// Top level.
var async; //# 01: ok
var await; //# 01: continued
var hide; //# 01: continued
var of; //# 01: continued
var on; //# 01: continued
var show; //# 01: continued
var sync; //# 01: continued
var yield; //# 01: continued
int async; //# 02: ok
int await; //# 02: continued
int hide; //# 02: continued
int of; //# 02: continued
int on; //# 02: continued
int show; //# 02: continued
int sync; //# 02: continued
int yield; //# 02: continued
final String async = ""; //# 03: ok
final String await = ""; //# 03: continued
final String hide = ""; //# 03: continued
final String of = ""; //# 03: continued
final String on = ""; //# 03: continued
final String show = ""; //# 03: continued
final String sync = ""; //# 03: continued
final String yield = ""; //# 03: continued
const async = null; //# 04: ok
const await = null; //# 04: continued
const hide = null; //# 04: continued
const of = null; //# 04: continued
const on = null; //# 04: continued
const show = null; //# 04: continued
const sync = null; //# 04: continued
const yield = null; //# 04: continued
void async() {} //# 05: ok
void await() {} //# 05: continued
void hide() {} //# 05: continued
void of() {} //# 05: continued
void on() {} //# 05: continued
void show() {} //# 05: continued
void sync() {} //# 05: continued
void yield() {} //# 05: continued
void f1(async, await, hide, of, on, show, sync, yield) {}
void f2([async, await, hide, of, on, show, sync, yield]) {}
void f3({async, await, hide, of, on, show, sync, yield}) {}
void f4(
int async,
int await,
int hide,
int of,
int on,
int show,
int sync,
int yield,
) {}
void f5([
int async,
int await,
int hide,
int of,
int on,
int show,
int sync,
int yield,
]) {}
void f6({
int async,
int await,
int hide,
int of,
int on,
int show,
int sync,
int yield,
}) {}
class A {
var async; //# 01: continued
var await; //# 01: continued
var hide; //# 01: continued
var of; //# 01: continued
var on; //# 01: continued
var show; //# 01: continued
var sync; //# 01: continued
var yield; //# 01: continued
num async; //# 02: continued
num await; //# 02: continued
num hide; //# 02: continued
num of; //# 02: continued
num on; //# 02: continued
num show; //# 02: continued
num sync; //# 02: continued
num yield; //# 02: continued
final String async = ""; //# 03: continued
final String await = ""; //# 03: continued
final String hide = ""; //# 03: continued
final String of = ""; //# 03: continued
final String on = ""; //# 03: continued
final String show = ""; //# 03: continued
final String sync = ""; //# 03: continued
final String yield = ""; //# 03: continued
String get async => ""; //# 04: continued
String get await => ""; //# 04: continued
String get hide => ""; //# 04: continued
String get of => ""; //# 04: continued
String get on => ""; //# 04: continued
String get show => ""; //# 04: continued
String get sync => ""; //# 04: continued
String get yield => ""; //# 04: continued
void async() {} //# 05: ok
void await() {} //# 05: continued
void hide() {} //# 05: continued
void of() {} //# 05: continued
void on() {} //# 05: continued
void show() {} //# 05: continued
void sync() {} //# 05: continued
void yield() {} //# 05: continued
A();
A.c1( //# 01: continued
this.async, //# 01: continued
this.await, //# 01: continued
this.hide, //# 01: continued
this.of, //# 01: continued
this.on, //# 01: continued
this.show, //# 01: continued
this.sync, //# 01: continued
this.yield, //# 01: continued
) {} //# 01: continued
A.c2([ //# 01: continued
this.async, //# 01: continued
this.await, //# 01: continued
this.hide, //# 01: continued
this.of, //# 01: continued
this.on, //# 01: continued
this.show, //# 01: continued
this.sync, //# 01: continued
this.yield, //# 01: continued
]) {} //# 01: continued
A.c3({ //# 01: continued
this.async, //# 01: continued
this.await, //# 01: continued
this.hide, //# 01: continued
this.of, //# 01: continued
this.on, //# 01: continued
this.show, //# 01: continued
this.sync, //# 01: continued
this.yield, //# 01: continued
}) {} //# 01: continued
A.c4( //# 02: continued
int this.async, //# 02: continued
int this.await, //# 02: continued
int this.hide, //# 02: continued
int this.of, //# 02: continued
int this.on, //# 02: continued
int this.show, //# 02: continued
int this.sync, //# 02: continued
int this.yield, //# 02: continued
) {} //# 02: continued
A.c5([ //# 02: continued
int this.async, //# 02: continued
int this.await, //# 02: continued
int this.hide, //# 02: continued
int this.of, //# 02: continued
int this.on, //# 02: continued
int this.show, //# 02: continued
int this.sync, //# 02: continued
int this.yield, //# 02: continued
]) {} //# 02: continued
A.c6({ //# 02: continued
int this.async, //# 02: continued
int this.await, //# 02: continued
int this.hide, //# 02: continued
int this.of, //# 02: continued
int this.on, //# 02: continued
int this.show, //# 02: continued
int this.sync, //# 02: continued
int this.yield, //# 02: continued
}) {} //# 02: continued
void method1(
covariant int async,
covariant int await,
covariant int hide,
covariant int of,
covariant int on,
covariant int show,
covariant int sync,
covariant int yield,
) {}
void method2([
covariant int async,
covariant int await,
covariant int hide,
covariant int of,
covariant int on,
covariant int show,
covariant int sync,
covariant int yield,
]) {}
void method3({
covariant int async,
covariant int await,
covariant int hide,
covariant int of,
covariant int on,
covariant int show,
covariant int sync,
covariant int yield,
}) {}
}
class B {
static var async; //# 01: continued
static var await; //# 01: continued
static var hide; //# 01: continued
static var of; //# 01: continued
static var on; //# 01: continued
static var show; //# 01: continued
static var sync; //# 01: continued
static var yield; //# 01: continued
static num async; //# 02: continued
static num await; //# 02: continued
static num hide; //# 02: continued
static num of; //# 02: continued
static num on; //# 02: continued
static num show; //# 02: continued
static num sync; //# 02: continued
static num yield; //# 02: continued
static final String async = ""; //# 03: continued
static final String await = ""; //# 03: continued
static final String hide = ""; //# 03: continued
static final String of = ""; //# 03: continued
static final String on = ""; //# 03: continued
static final String show = ""; //# 03: continued
static final String sync = ""; //# 03: continued
static final String yield = ""; //# 03: continued
static const async = null; //# 04: continued
static const await = null; //# 04: continued
static const hide = null; //# 04: continued
static const of = null; //# 04: continued
static const on = null; //# 04: continued
static const show = null; //# 04: continued
static const sync = null; //# 04: continued
static const yield = null; //# 04: continued
static get async => null; //# 05: continued
static get await => null; //# 05: continued
static get hide => null; //# 05: continued
static get of => null; //# 05: continued
static get on => null; //# 05: continued
static get show => null; //# 05: continued
static get sync => null; //# 05: continued
static get yield => null; //# 05: continued
}
main() {
/* //# none: ok
// Except none: Use a top-level declaration.
var top_async = async;
var top_await = await;
var top_hide = hide;
var top_of = of;
var top_on = on;
var top_show = show;
var top_sync = sync;
var top_yield = yield;
// Except none: Use an instance member of A.
A a = new A();
var instance_async = a.async;
var instance_await = a.await;
var instance_hide = a.hide;
var instance_of = a.of;
var instance_on = a.on;
var instance_show = a.show;
var instance_sync = a.sync;
var instance_yield = a.yield;
// Except none: Use a static member of B.
var static_async = B.async;
var static_await = B.await;
var static_hide = B.hide;
var static_of = B.of;
var static_on = B.on;
var static_show = B.show;
var static_sync = B.sync;
var static_yield = B.yield;
*/ //# none: continued
var a1 = new A.c1(1, 1, 1, 1, 1, 1, 1, 1); //# 01: continued
var a2 = new A.c2(); //# 01: continued
var a3 = new A.c3( //# 01: continued
async: 1, //# 01: continued
await: 1, //# 01: continued
hide: 1, //# 01: continued
of: 1, //# 01: continued
on: 1, //# 01: continued
show: 1, //# 01: continued
sync: 1, //# 01: continued
yield: 1, //# 01: continued
); //# 01: continued
var a4 = new A.c4(1, 1, 1, 1, 1, 1, 1, 1); //# 02: continued
var a5 = new A.c5(); //# 02: continued
var a6 = new A.c6( //# 02: continued
async: 1, //# 02: continued
await: 1, //# 02: continued
hide: 1, //# 02: continued
of: 1, //# 02: continued
on: 1, //# 02: continued
show: 1, //# 02: continued
sync: 1, //# 02: continued
yield: 1, //# 02: continued
); //# 02: continued
var aa = new A();
aa.method1(1, 1, 1, 1, 1, 1, 1, 1);
aa.method2();
aa.method3(
async: 1,
await: 1,
hide: 1,
of: 1,
on: 1,
show: 1,
sync: 1,
yield: 1,
);
}
+2
View File
@@ -116,6 +116,8 @@ issue1363_test/01: MissingCompileTimeError # Requires strong mode
issue15606_test/01: MissingCompileTimeError # Requires strong mode
issue18628_1_test/01: MissingCompileTimeError # Requires strong mode
issue18628_2_test/01: MissingCompileTimeError # Requires strong mode
known_identifier_prefix_error_test/none: Pass
known_identifier_prefix_error_test/*: MissingCompileTimeError # Requires strong mode
map_literal3_test/01: MissingCompileTimeError
map_literal3_test/02: MissingCompileTimeError
map_literal3_test/03: MissingCompileTimeError
@@ -467,6 +467,8 @@ mixin_invalid_bound_test/10: MissingCompileTimeError
[ $compiler == dart2analyzer ]
generic_no_such_method_dispatcher_simple_test: Skip # This test is just for kernel.
fuzzy_arrows_test/01: MissingCompileTimeError
built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/85: Crash # Issue 28813
[ $compiler == dart2analyzer && $checked ]
assertion_initializer_const_error2_test/none: Pass
@@ -1209,6 +1211,26 @@ async_congruence_local_test/02: MissingCompileTimeError
async_congruence_method_test/01: MissingCompileTimeError
async_congruence_unnamed_test/01: MissingCompileTimeError
async_congruence_unnamed_test/02: MissingCompileTimeError
built_in_identifier_type_annotation_test/35: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/36: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/37: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/38: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/40: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/41: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/42: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/43: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/44: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/45: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/46: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/47: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/48: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/49: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/50: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/51: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/70: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/72: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/78: MissingCompileTimeError # Issue 28813
built_in_identifier_type_annotation_test/81: MissingCompileTimeError # Issue 28813
cast_test/04: MissingCompileTimeError
cast_test/05: MissingCompileTimeError
checked_null_test/01: MissingCompileTimeError
@@ -1359,6 +1381,8 @@ initializing_formal_type_test: MissingCompileTimeError
instantiate_type_variable_test/01: StaticWarning
interceptor6_test: StaticWarning
invocation_mirror_test: StaticWarning
known_identifier_prefix_error_test/none: Pass
known_identifier_prefix_error_test/*: MissingCompileTimeError # Error only in strong mode.
least_upper_bound_expansive_test/01: MissingCompileTimeError
least_upper_bound_expansive_test/02: MissingCompileTimeError
least_upper_bound_expansive_test/03: MissingCompileTimeError
+46 -1
View File
@@ -797,6 +797,26 @@ assertion_initializer_const_error2_test/*: Crash # Issue 30038
assertion_initializer_test: Crash
bad_constructor_test/05: CompileTimeError
bad_typedef_test/00: Crash # Issue 28214
built_in_identifier_type_annotation_test/13: Crash # Issue 28815
built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
built_in_identifier_type_annotation_test/30: Crash # Issue 28815
built_in_identifier_type_annotation_test/52: Crash # Issue 28815
built_in_identifier_type_annotation_test/53: Crash # Issue 28815
built_in_identifier_type_annotation_test/54: Crash # Issue 28815
built_in_identifier_type_annotation_test/55: Crash # Issue 28815
built_in_identifier_type_annotation_test/57: Crash # Issue 28815
built_in_identifier_type_annotation_test/58: Crash # Issue 28815
built_in_identifier_type_annotation_test/59: Crash # Issue 28815
built_in_identifier_type_annotation_test/60: Crash # Issue 28815
built_in_identifier_type_annotation_test/61: Crash # Issue 28815
built_in_identifier_type_annotation_test/62: Crash # Issue 28815
built_in_identifier_type_annotation_test/63: Crash # Issue 28815
built_in_identifier_type_annotation_test/64: Crash # Issue 28815
built_in_identifier_type_annotation_test/65: Crash # Issue 28815
built_in_identifier_type_annotation_test/66: Crash # Issue 28815
built_in_identifier_type_annotation_test/67: Crash # Issue 28815
built_in_identifier_type_annotation_test/68: Crash # Issue 28815
built_in_identifier_type_annotation_test/81: Crash # Issue 28815
call_function_apply_test: RuntimeError # Issue 23873
canonical_const2_test: RuntimeError, OK # Issue 1533
compile_time_constant_o_test/01: MissingCompileTimeError
@@ -3161,6 +3181,23 @@ yieldstar_pause_test: RuntimeError
checked_setter_test: RuntimeError # Issue 31128
checked_setter2_test: RuntimeError # Issue 31128
checked_setter3_test: RuntimeError # Issue 31128
built_in_identifier_type_annotation_test/22: Crash # Issue 28815
built_in_identifier_type_annotation_test/52: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/53: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/54: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/55: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/57: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/58: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/59: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/60: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/61: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/62: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/63: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/64: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/65: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/66: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/67: MissingCompileTimeError # Issue 28815
built_in_identifier_type_annotation_test/68: MissingCompileTimeError # Issue 28815
[ $compiler == dart2js && $dart2js_with_kernel && !$checked ]
assertion_initializer_const_error2_test/none: Pass
@@ -3169,6 +3206,15 @@ implicit_downcast_during_assignment_test: RuntimeError
implicit_downcast_during_compound_assignment_test: RuntimeError
implicit_downcast_during_if_null_assignment_test: RuntimeError
[ $compiler == dart2js && $dart2js_with_kernel && $checked ]
known_identifier_usage_error_test/none: RuntimeError # Issue 28815
built_in_identifier_test: RuntimeError # Issue 28815
built_in_identifier_type_annotation_test/none: RuntimeError # Issue 28815
built_in_identifier_type_annotation_test/05: RuntimeError # Issue 28815
built_in_identifier_type_annotation_test/39: RuntimeError # Issue 28815
built_in_identifier_type_annotation_test/56: RuntimeError # Issue 28815
built_in_identifier_type_annotation_test/73: RuntimeError # Issue 28815
[ $compiler == dart2js && $dart2js_with_kernel && $minified && $checked ]
inline_super_field_test: Crash
typedef_is_test: Crash
@@ -3338,4 +3384,3 @@ regress_26855_test/4: Crash # Issue 26867
[ $compiler == dart2js && $csp && $browser && !$fast_startup ]
conditional_import_string_test: Fail # Issue 30615
conditional_import_test: Fail # Issue 30615
@@ -14,6 +14,7 @@ assertion_initializer_const_function_test/01: Crash
assertion_initializer_test: CompileTimeError
black_listed_test/none: fail # Issue 14228
built_in_identifier_prefix_test: CompileTimeError
built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Issue 28816
conflicting_type_variable_and_setter_test: CompileTimeError
const_for_in_variable_test/01: MissingCompileTimeError
const_types_test/07: MissingCompileTimeError
+90
View File
@@ -15,6 +15,23 @@
arithmetic2_test: RuntimeError # Throws CastError instead of TypeError
async_star_cancel_while_paused_test: RuntimeError
async_star_pause_test: Fail, OK
built_in_identifier_type_annotation_test/22: DartkCrash # Issue 28814
built_in_identifier_type_annotation_test/52: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/53: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/54: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/55: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/57: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/58: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/59: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/60: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/61: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/62: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/63: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/64: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/65: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/66: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/67: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/68: MissingCompileTimeError # Issue 28814
closure_invoked_through_interface_target_field_test: MissingCompileTimeError
const_error_multiply_initialized_test/02: MissingCompileTimeError
const_error_multiply_initialized_test/04: MissingCompileTimeError
@@ -271,6 +288,23 @@ assertion_test: Crash
bool_check_test: RuntimeError
bool_condition_check_test: RuntimeError
built_in_identifier_prefix_test: CompileTimeError
built_in_identifier_type_annotation_test/22: DartkCrash # Issue 28814
built_in_identifier_type_annotation_test/52: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/53: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/54: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/55: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/57: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/58: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/59: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/60: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/61: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/62: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/63: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/64: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/65: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/66: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/67: MissingCompileTimeError # Issue 28814
built_in_identifier_type_annotation_test/68: MissingCompileTimeError # Issue 28814
checked_null_test/01: MissingCompileTimeError
checked_setter2_test: MissingCompileTimeError
checked_setter3_test/01: MissingCompileTimeError
@@ -337,6 +371,32 @@ assertion_initializer_const_function_test/01: Crash
assertion_initializer_const_function_test/none: Crash
regress_30339_test: Crash
[ $compiler == dartkp && $runtime == dart_precompiled && $checked && $strong ]
known_identifier_prefix_error_test/01: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/02: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/03: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/04: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/05: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/06: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/07: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/08: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/09: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/10: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/11: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/12: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/13: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/14: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/15: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/16: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/17: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/18: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/19: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/20: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/21: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/22: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/23: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/24: MissingCompileTimeError # Issue 28814
# dartk: checked mode failures
[ ($compiler == dartk || $compiler == dartkp) && $strong && $checked ]
assert_initializer_test/31: MissingCompileTimeError # KernelVM bug: Constant evaluation.
@@ -833,6 +893,30 @@ issue18628_1_test/01: MissingCompileTimeError
issue18628_2_test/01: MissingCompileTimeError
issue_25671b_test/01: DartkCrash
list_is_test: RuntimeError
known_identifier_prefix_error_test/01: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/02: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/03: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/04: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/05: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/06: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/07: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/08: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/09: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/10: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/11: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/12: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/13: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/14: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/15: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/16: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/17: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/18: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/19: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/20: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/21: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/22: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/23: MissingCompileTimeError # Issue 28814
known_identifier_prefix_error_test/24: MissingCompileTimeError # Issue 28814
map_literal11_test/none: MissingRuntimeError
map_literal1_test/01: MissingCompileTimeError
map_literal3_test/01: MissingCompileTimeError
@@ -997,6 +1081,9 @@ void_type_usage_test/paren_stmt: CompileTimeError
void_type_usage_test/setter_assign: CompileTimeError
wrong_number_type_arguments_test/none: Pass
[ $compiler == dartk && $strong && $checked ]
known_identifier_usage_error_test/none: RuntimeError # Issue 28814
[ $compiler == dartkp && $strong ]
abstract_syntax_test/01: MissingCompileTimeError
assertion_initializer_const_error_test/01: Pass
@@ -1015,6 +1102,8 @@ async_star_test/02: Crash
bad_constructor_test/00: MissingCompileTimeError
bad_constructor_test/01: MissingCompileTimeError
bad_named_parameters_test/04: Crash
built_in_identifier_type_annotation_test/22: Crash # Issue 28814
built_in_identifier_type_annotation_test/74: MissingCompileTimeError # Issue 28814
built_in_identifier_illegal_test/01: MissingCompileTimeError
built_in_identifier_illegal_test/04: MissingCompileTimeError
built_in_identifier_illegal_test/05: MissingCompileTimeError
@@ -1029,6 +1118,7 @@ built_in_identifier_illegal_test/17: MissingCompileTimeError
built_in_identifier_illegal_test/18: MissingCompileTimeError
built_in_identifier_illegal_test/19: MissingCompileTimeError
built_in_identifier_illegal_test/20: MissingCompileTimeError
built_in_identifier_not_prefix_test/22: MissingCompileTimeError # Issue 28814
call_function_test: CompileTimeError
class_cycle_test/02: MissingCompileTimeError
class_cycle_test/03: MissingCompileTimeError
+1
View File
@@ -63,6 +63,7 @@ bit_operations_test/02: MissingCompileTimeError
bit_operations_test/03: MissingCompileTimeError
bit_operations_test/04: MissingCompileTimeError
built_in_identifier_prefix_test: CompileTimeError
built_in_identifier_type_annotation_test/22: MissingCompileTimeError # Error only in strong mode
call_constructor_on_unresolvable_class_test/01: MissingCompileTimeError
call_constructor_on_unresolvable_class_test/02: MissingCompileTimeError
call_constructor_on_unresolvable_class_test/03: MissingCompileTimeError