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

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

Issue 2370853004: Fix bug effectively stating that 1e8 is an integer literal, not a double. (Closed)
Patch Set: Created 4 years, 2 months 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 2451 matching lines...) Expand 10 before | Expand all | Expand 10 after
2462 % so, checked mode? analyzers? editor/development compilers? 2462 % so, checked mode? analyzers? editor/development compilers?
2463 \commentary{ 2463 \commentary{
2464 Note that there is no requirement that every constant expression evaluate correc tly. Only when a constant expression is required (e.g., to initialize a constant variable, or as a default value of a formal parameter, or as metadata) do we in sist that a constant expression actually be evaluated successfully at compile ti me. 2464 Note that there is no requirement that every constant expression evaluate correc tly. Only when a constant expression is required (e.g., to initialize a constant variable, or as a default value of a formal parameter, or as metadata) do we in sist that a constant expression actually be evaluated successfully at compile ti me.
2465 2465
2466 The above is not dependent on program control-flow. The mere presence of a requi red compile time constant whose evaluation would fail within a program is an err or. This also holds recursively: since compound constants are composed out of c onstants, if any subpart of a constant would raise an exception when evaluated, that is an error. 2466 The above is not dependent on program control-flow. The mere presence of a requi red compile time constant whose evaluation would fail within a program is an err or. This also holds recursively: since compound constants are composed out of c onstants, if any subpart of a constant would raise an exception when evaluated, that is an error.
2467 2467
2468 On the other hand, since implementations are free to compile code late, some com pile-time errors may manifest quite late. 2468 On the other hand, since implementations are free to compile code late, some com pile-time errors may manifest quite late.
2469 } 2469 }
2470 2470
2471 \begin{dartCode} 2471 \begin{dartCode}
2472 \CONST{} x = 1/0; 2472 \CONST{} x = 1 ~/ 0;
2473 \FINAL{} y = 1/0; 2473 \FINAL{} y = 1 ~/ 0;
2474 2474
2475 \CLASS{} K \{ 2475 \CLASS{} K \{
2476 m1() \{ 2476 m1() \{
2477 \VAR{} z = \FALSE{}; 2477 \VAR{} z = \FALSE{};
2478 \IF{} (z) \{\RETURN{} x; \} 2478 \IF{} (z) \{\RETURN{} x; \}
2479 \ELSE{} \{ \RETURN{} 2;\} 2479 \ELSE{} \{ \RETURN{} 2;\}
2480 \} 2480 \}
2481 2481
2482 m2() \{ 2482 m2() \{
2483 \IF{} (\TRUE{}) \{\RETURN{} y; \} 2483 \IF{} (\TRUE{}) \{\RETURN{} y; \}
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
2583 `0X' HEX\_DIGIT+ 2583 `0X' HEX\_DIGIT+
2584 . 2584 .
2585 2585
2586 {\bf HEX\_DIGIT:}`a'{\escapegrammar ..}'f'; 2586 {\bf HEX\_DIGIT:}`a'{\escapegrammar ..}'f';
2587 `A'{\escapegrammar ..}'F'; 2587 `A'{\escapegrammar ..}'F';
2588 DIGIT 2588 DIGIT
2589 . 2589 .
2590 \end{grammar} 2590 \end{grammar}
2591 2591
2592 \LMHash{} 2592 \LMHash{}
2593 If a numeric literal begins with the prefix `0x' or `0X', it denotes the hexadec imal integer represented by the part of the literal following `0x' (respectively `0X'). Otherwise, if the numeric literal does not include a decimal point it d enotes a decimal integer. Otherwise, the numeric literal denotes a 64 bit doub le precision floating point number as specified by the IEEE 754 standard. 2593 If a numeric literal begins with the prefix `0x' or `0X', it denotes the hexadec imal integer represented by the part of the literal following `0x' (respectively `0X'). Otherwise, if the numeric literal contains only decimal digits, it denot es a decimal integer. Otherwise, the numeric literal contains either a decimal point or an exponent part and it denotes a 64 bit double precision floating poin t number as specified by the IEEE 754 standard.
2594 2594
2595 \LMHash{} 2595 \LMHash{}
2596 In principle, the range of integers supported by a Dart implementations is unlim ited. In practice, it is limited by available memory. Implementations may also b e limited by other considerations. 2596 In principle, the range of integers supported by a Dart implementations is unlim ited. In practice, it is limited by available memory. Implementations may also b e limited by other considerations.
2597 2597
2598 \commentary{ 2598 \commentary{
2599 For example, implementations may choose to limit the range to facilitate efficie nt compilation to Javascript. These limitations should be relaxed as soon as tec hnologically feasible. 2599 For example, implementations may choose to limit the range to facilitate efficie nt compilation to Javascript. These limitations should be relaxed as soon as tec hnologically feasible.
2600 } 2600 }
2601 2601
2602 \LMHash{} 2602 \LMHash{}
2603 It is a compile-time error for a class to attempt to extend, mix in or implement \code{int}. It is a compile-time error for a class to attempt to extend, mix in or implement \code{double}. It is a compile-time error for any type other than the types \code{int} and \code{double} to attempt to extend, mix in or implement \code{num}. 2603 It is a compile-time error for a class to attempt to extend, mix in or implement \code{int}. It is a compile-time error for a class to attempt to extend, mix in or implement \code{double}. It is a compile-time error for any type other than the types \code{int} and \code{double} to attempt to extend, mix in or implement \code{num}.
(...skipping 5293 matching lines...) Expand 10 before | Expand all | Expand 10 after
7897 7897
7898 The invariant that each normative paragraph is associated with a line 7898 The invariant that each normative paragraph is associated with a line
7899 containing the text \LMHash{} should be maintained. Extra occurrences 7899 containing the text \LMHash{} should be maintained. Extra occurrences
7900 of \LMHash{} can be added if needed, e.g., in order to make 7900 of \LMHash{} can be added if needed, e.g., in order to make
7901 individual \item{}s in itemized lists addressable. Each \LM.. command 7901 individual \item{}s in itemized lists addressable. Each \LM.. command
7902 must occur on a separate line. \LMHash{} must occur immediately 7902 must occur on a separate line. \LMHash{} must occur immediately
7903 before the associated paragraph, and \LMLabel must occur immediately 7903 before the associated paragraph, and \LMLabel must occur immediately
7904 after the associated \section{}, \subsection{} etc. 7904 after the associated \section{}, \subsection{} etc.
7905 7905
7906 ---------------------------------------------------------------------- 7906 ----------------------------------------------------------------------
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