| // 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)`. |
| |
| final // optional type before variable must not be a built-in identifier. |
| abstract // //# abstract: syntax error |
| as // //# as: syntax error |
| covariant // //# covariant: syntax error |
| deferred // //# deferred: syntax error |
| dynamic // //# dynamic: ok |
| export // //# export: syntax error |
| external // //# external: syntax error |
| factory // //# factory: syntax error |
| get // //# get: syntax error |
| implements // //# implements: syntax error |
| import // //# import: syntax error |
| interface // //# interface: syntax error |
| library // //# library: syntax error |
| mixin // //# mixin: syntax error |
| operator // //# operator: syntax error |
| part // //# part: syntax error |
| set // //# set: syntax error |
| static // //# static: syntax error |
| typedef // //# typedef: syntax error |
| |
| abstract<int>? // //# abstract-gen: syntax error |
| as<int>? // //# as-gen: syntax error |
| covariant<int>? // //# covariant-gen: syntax error |
| deferred<int>? // //# deferred-gen: syntax error |
| dynamic<int>? // //# dynamic-gen: compile-time error |
| export<int>? // //# export-gen: syntax error |
| external<int>? // //# external-gen: syntax error |
| factory<int>? // //# factory-gen: syntax error |
| get<int>? // //# get-gen: syntax error |
| implements<int>? // //# implements-gen: syntax error |
| import<int>? // //# import-gen: syntax error |
| interface<int>? // //# interface-gen: syntax error |
| library<int>? // //# library-gen: syntax error |
| mixin<int>? // //# mixin-gen: syntax error |
| operator<int>? // //# operator-gen: syntax error |
| part<int>? // //# part-gen: syntax error |
| set<int>? // //# set-gen: syntax error |
| static<int>? // //# static-gen: syntax error |
| typedef<int>? // //# typedef-gen: syntax error |
| |
| List<abstract>? // //# abstract-list: syntax error |
| List<as>? // //# as-list: syntax error |
| List<covariant>? // //# covariant-list: syntax error |
| List<deferred>? // //# deferred-list: syntax error |
| List<dynamic>? // //# dynamic-list: ok |
| List<export>? // //# export-list: syntax error |
| List<external>? // //# external-list: syntax error |
| List<factory>? // //# factory-list: syntax error |
| List<get>? // //# get-list: syntax error |
| List<implements>? // //# implements-list: syntax error |
| List<import>? // //# import-list: syntax error |
| List<interface>? // //# interface-list: syntax error |
| List<library>? // //# library-list: syntax error |
| List<mixin>? // //# mixin-list: syntax error |
| List<operator>? // //# operator-list: syntax error |
| List<part>? // //# part-list: syntax error |
| List<set>? // //# set-list: syntax error |
| List<static>? // //# static-list: syntax error |
| List<typedef>? // //# typedef-list: syntax error |
| |
| Function(abstract)? // //# abstract-funarg: syntax error |
| Function(as)? // //# as-funarg: syntax error |
| Function(covariant)? // //# covariant-funarg: syntax error |
| Function(deferred)? // //# deferred-funarg: syntax error |
| Function(dynamic)? // //# dynamic-funarg: ok |
| Function(export)? // //# export-funarg: syntax error |
| Function(external)? // //# external-funarg: syntax error |
| Function(factory)? // //# factory-funarg: syntax error |
| Function(get)? // //# get-funarg: syntax error |
| Function(implements)? // //# implements-funarg: syntax error |
| Function(import)? // //# import-funarg: syntax error |
| Function(interface)? // //# interface-funarg: syntax error |
| Function(library)? // //# library-funarg: syntax error |
| Function(mixin)? // //# mixin-funarg: syntax error |
| Function(operator)? // //# operator-funarg: syntax error |
| Function(part)? // //# part-funarg: syntax error |
| Function(set)? // //# set-funarg: syntax error |
| Function(static)? // //# static-funarg: syntax error |
| Function(typedef)? // //# typedef-funarg: syntax error |
| |
| abstract Function()? // //# abstract-funret: syntax error |
| as Function()? // //# as-funret: syntax error |
| covariant Function()? // //# covariant-funret: syntax error |
| deferred Function()? // //# deferred-funret: syntax error |
| dynamic Function()? // //# dynamic-funret: ok |
| export Function()? // //# export-funret: syntax error |
| external Function()? // //# external-funret: syntax error |
| factory Function()? // //# factory-funret: syntax error |
| get Function()? // //# get-funret: syntax error |
| implements Function()? // //# implements-funret: syntax error |
| import Function()? // //# import-funret: syntax error |
| interface Function()? // //# interface-funret: syntax error |
| library Function()? // //# library-funret: syntax error |
| mixin Function()? // //# mixin-funret: syntax error |
| operator Function()? // //# operator-funret: syntax error |
| part Function()? // //# part-funret: syntax error |
| set Function()? // //# set-funret: syntax error |
| static Function()? // //# static-funret: syntax error |
| typedef Function()? // //# typedef-funret: syntax error |
| |
| x = null; |
| |
| main() { |
| x.toString(); |
| } |