Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(212)

Side by Side Diff: docs/language/dartLangSpec.tex

Issue 1465473002: Expand the definition of potentially constant expression. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 \documentclass{article} 1 \documentclass{article}
2 \usepackage{epsfig} 2 \usepackage{epsfig}
3 \usepackage{color} 3 \usepackage{color}
4 \usepackage{dart} 4 \usepackage{dart}
5 \usepackage{bnf} 5 \usepackage{bnf}
6 \usepackage{hyperref} 6 \usepackage{hyperref}
7 \usepackage{lmodern} 7 \usepackage{lmodern}
8 \newcommand{\code}[1]{{\sf #1}} 8 \newcommand{\code}[1]{{\sf #1}}
9 \title{Dart Programming Language Specification \\ 9 \title{Dart Programming Language Specification \\
10 (4th edition draft)\\ 10 (4th edition draft)\\
(...skipping 1529 matching lines...) Expand 10 before | Expand all | Expand 10 after
1540 A superclass of $C$ cannot declare such an initializer either, because it must n ecessarily declare constant constructor as well (unless it is \code{Object}, whi ch declares no instance variables). 1540 A superclass of $C$ cannot declare such an initializer either, because it must n ecessarily declare constant constructor as well (unless it is \code{Object}, whi ch declares no instance variables).
1541 } 1541 }
1542 1542
1543 \LMHash{} 1543 \LMHash{}
1544 The superinitializer that appears, explicitly or implicitly, in the initializer list of a constant constructor must specify a constant constructor of the superc lass of the immediately enclosing class or a compile-time error occurs. 1544 The superinitializer that appears, explicitly or implicitly, in the initializer list of a constant constructor must specify a constant constructor of the superc lass of the immediately enclosing class or a compile-time error occurs.
1545 1545
1546 \LMHash{} 1546 \LMHash{}
1547 Any expression that appears within the initializer list of a constant constructo r must be a potentially constant expression, or a compile-time error occurs. 1547 Any expression that appears within the initializer list of a constant constructo r must be a potentially constant expression, or a compile-time error occurs.
1548 1548
1549 \LMHash{} 1549 \LMHash{}
1550 A {\em potentially constant expression} is an expression $e$ that would be a val id constant expression if all formal parameters of $e$'s immediately enclosing c onstant constructor were treated as compile-time constants that were guaranteed to evaluate to an integer, boolean or string value as required by their immediat ely enclosing superexpression. 1550 A {\em potentially constant expression} is an expression $e$ that would be a val id constant expression if all formal parameters of $e$'s immediately enclosing c onstant constructor were treated as compile-time constants that were guaranteed to evaluate to an integer, boolean or string value as required by their immediat ely enclosing superexpression, <em>and</em> where $e$ is also a valid expression if all the formal parameters are treated as non-constant variables.
eernst 2015/11/20 10:03:18 So, basically, you're saying that (1) is more impo
Lasse Reichstein Nielsen 2015/11/20 10:37:55 I'm saying that (1) is what we have been implement
1551 1551
1552 \commentary{ 1552 \commentary{
1553 Note that a parameter that is not used in a superexpression that is restricted t o certain types can be a constant of any type. For example} 1553 Note that a parameter that is not used in a superexpression that is restricted t o certain types can be a constant of any type. For example}
1554 1554
1555 \begin{dartCode} 1555 \begin{dartCode}
1556 \CLASS{} A \{ 1556 \CLASS{} A \{
1557 \FINAL{} m; 1557 \FINAL{} m;
1558 \CONST{} A(this.m); 1558 \CONST{} A(this.m);
1559 \} 1559 \}
1560 \end{dartCode} 1560 \end{dartCode}
(...skipping 6306 matching lines...) Expand 10 before | Expand all | Expand 10 after
7867 7867
7868 The invariant that each normative paragraph is associated with a line 7868 The invariant that each normative paragraph is associated with a line
7869 containing the text \LMHash{} should be maintained. Extra occurrences 7869 containing the text \LMHash{} should be maintained. Extra occurrences
7870 of \LMHash{} can be added if needed, e.g., in order to make 7870 of \LMHash{} can be added if needed, e.g., in order to make
7871 individual \item{}s in itemized lists addressable. Each \LM.. command 7871 individual \item{}s in itemized lists addressable. Each \LM.. command
7872 must occur on a separate line. \LMHash{} must occur immediately 7872 must occur on a separate line. \LMHash{} must occur immediately
7873 before the associated paragraph, and \LMLabel must occur immediately 7873 before the associated paragraph, and \LMLabel must occur immediately
7874 after the associated \section{}, \subsection{} etc. 7874 after the associated \section{}, \subsection{} etc.
7875 7875
7876 ---------------------------------------------------------------------- 7876 ----------------------------------------------------------------------
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698