Chromium Code Reviews| Index: docs/language/dartLangSpec.tex |
| diff --git a/docs/language/dartLangSpec.tex b/docs/language/dartLangSpec.tex |
| index c1d9e6b06ac936769a15bcd52f42dcfcd577a356..9cda514a2a457fc6e9bd996ca289ae7302ba8df7 100644 |
| --- a/docs/language/dartLangSpec.tex |
| +++ b/docs/language/dartLangSpec.tex |
| @@ -707,7 +707,7 @@ A {\em required formal parameter} may be specified in one of three ways: |
| \end{itemize} |
| \begin{grammar} |
| -{\bf normalFormalParameter:}functionSignature; |
| +{\bf normalFormalParameter:}functionSignature `?'?; |
| fieldFormalParameter; |
| simpleFormalParameter |
| . |
| @@ -820,8 +820,20 @@ metadata \ABSTRACT{}? \CLASS{} identifier typeParameters? (superclass mixins?)? |
| metadata \ABSTRACT{}? \CLASS{} mixinApplicationClass |
| . |
| +{\bf classDenotation:} |
| + className typeArguments? |
|
Lasse Reichstein Nielsen
2017/05/30 10:52:30
className is equivalent to typeName, so this could
|
| + . |
| + |
| +{\bf className:} |
| + qualified |
| + . |
| + |
| +{\bf classDenotationList:} |
| + classDenotation (`,$\!\!$' classDenotation)* |
| + . |
| + |
| {\bf mixins:} |
| - \WITH{} typeList |
| + \WITH{} classDenotationList |
| . |
| {\bf classMemberDefinition:}declaration `{\escapegrammar ;}' ; |
| @@ -1438,7 +1450,7 @@ A {\em redirecting factory constructor} specifies a call to a constructor of ano |
| \begin{grammar} |
| {\bf redirectingFactoryConstructorSignature:} |
| - \CONST{}? \FACTORY{} identifier (`{\escapegrammar .}' identifier)? formalParameterList `=' type (`{\escapegrammar .}' identifier)? |
| + \CONST{}? \FACTORY{} identifier (`{\escapegrammar .}' identifier)? formalParameterList `=' classDenotation (`{\escapegrammar .}' identifier)? |
| . |
| \end{grammar} |
| @@ -1716,7 +1728,7 @@ It is a compile-time error to specify an \EXTENDS{} clause for class \code{Objec |
| \begin{grammar} |
| {\bf superclass:} |
| - \EXTENDS{} type |
| + \EXTENDS{} classDenotation |
| . |
| \end{grammar} |
| @@ -1857,8 +1869,8 @@ A class has a set of direct superinterfaces. This set includes the interface of |
| \begin{grammar} |
| {\bf interfaces:} |
| - \IMPLEMENTS{} typeList |
| - . |
| + \IMPLEMENTS{} classDenotationList |
| + . |
| \end{grammar} |
| \LMHash{} |
| @@ -2046,7 +2058,7 @@ A mixin may be applied to a superclass, yielding a new class. Mixin application |
| identifier typeParameters? `=' mixinApplication `{\escapegrammar ;}' . |
| {\bf mixinApplication:} |
| - type mixins interfaces? |
| + classDenotation mixins interfaces? |
| . |
| \end{grammar} |
| @@ -2364,7 +2376,7 @@ An {\em expression} is a fragment of Dart code that can be evaluated at run time |
| literal; |
| identifier; |
| newExpression; |
| - \NEW{} type `\#' (`{\escapegrammar .}' identifier)?; |
| + \NEW{} classDenotation `\#' (`{\escapegrammar .}' identifier)?; |
| constObjectExpression; |
| `(' expression `)' |
| . |
| @@ -3287,8 +3299,8 @@ The {\em new expression} invokes a constructor (\ref{constructors}). |
| \begin{grammar} |
| {\bf newExpression:} |
| -\NEW{} type (`{\escapegrammar .}' identifier)? arguments |
| -. |
| + \NEW{} classDenotation (`{\escapegrammar .}' identifier)? arguments |
| + . |
| \end{grammar} |
| \LMHash{} |
| @@ -3405,8 +3417,8 @@ A {\em constant object expression} invokes a constant constructor (\ref{constant |
| \begin{grammar} |
| {\bf constObjectExpression:} |
| -\CONST{} type ('{\escapegrammar .}' identifier)? arguments |
| -. |
| + \CONST{} classDenotation ('{\escapegrammar .}' identifier)? arguments |
|
Lasse Reichstein Nielsen
2017/05/30 10:52:30
' -> `
maybe?
|
| + . |
| \end{grammar} |
| \LMHash{} |
| @@ -7031,7 +7043,7 @@ Static type annotations are used in variable declarations (\ref{variables}) (inc |
| \begin{grammar} |
| {\bf type:} |
| - typeName typeArguments? |
| + typeName typeArguments? `?'? |
| . |
| {\bf typeName:} |