Skip to content

Commit b92280e

Browse files
authored
Correct constant expression spec per #3468 (#3495)
1 parent b44b0f4 commit b92280e

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

specification/dartLangSpec.tex

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
% version of the language which will actually be specified by the next stable
4242
% release of this document.
4343
%
44+
% Dec 2023
45+
% - Allow `~/` on operands of type `double` in constant expressions, aligning
46+
% the specification with already implemented behavior.
47+
%
4448
% Nov 2023
4549
% - Specify that the dynamic error for calling a function in a deferred and
4650
% not yet loaded library will occur before actual argument evaluation, not
@@ -8596,7 +8600,7 @@ \subsection{Constants}
85968600
if $T$ is a constant type expression,
85978601
and $e_1$, \ldots{} , $e_n$ are constant expressions.
85988602
It is further a constant expression
8599-
if the list literal evaluates to an object.
8603+
if the set literal evaluates to an object.
86008604

86018605
\item
86028606
A constant map literal (\ref{maps}),
@@ -8684,7 +8688,7 @@ \subsection{Constants}
86848688
\lit{\&}, \lit{|}, respectively \lit{\^}
86858689
denotes an instance operator invocation.
86868690

8687-
\item An expression of one of the forms \code{$e_1$\,\gtilde/\,$e_2$},
8691+
\item An expression of one of the forms
86888692
\code{$e_1$\,\gtgt\,$e_2$}, \code{$e_1$\,\gtgtgt\,$e_2$},
86898693
or \code{$e_1$\,\ltlt\,$e_2$} is potentially constant
86908694
if $e_1$ and $e_2$ are both potentially constant expressions.
@@ -8711,8 +8715,9 @@ \subsection{Constants}
87118715
such that \lit{-} denotes an instance operator invocation.
87128716

87138717
\item An expression of the form \code{$e_1$\,-\,$e_2$}, \code{$e_1$\,*\,$e_2$},
8714-
\code{$e_1$\,/\,$e_2$}, \code{$e_1$\,\%\,$e_2$}, \code{$e_1$\,<\,$e_2$},
8715-
\code{$e_1$\,<=\,$e_2$}, \code{$e_1$\,>\,$e_2$}, or \code{$e_1$\,>=\,$e_2$}
8718+
\code{$e_1$\,/\,$e_2$},\code{$e_1$\,\gtilde/\,$e_2$}, \code{$e_1$\,\%\,$e_2$},
8719+
\code{$e_1$\,<\,$e_2$}, \code{$e_1$\,<=\,$e_2$}, \code{$e_1$\,>\,$e_2$}, or
8720+
\code{$e_1$\,>=\,$e_2$}
87168721
is potentially constant
87178722
if $e_1$ and $e_2$ are both potentially constant expressions.
87188723
It is further constant if both $e_1$ and $e_2$ are constant expressions that

0 commit comments

Comments
 (0)