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:} |