Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specify null safety #2605

Open
wants to merge 89 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
3c47c4b
Rebasing
eernstg Oct 7, 2021
f8a9aff
Typos: Escaping braces meant to be code
eernstg Oct 8, 2021
256193e
Eliminated text about migration features, adapted the remaining text …
eernstg Oct 8, 2021
986da64
Rebasing
eernstg Oct 13, 2021
d5cafec
Reorganized material on null/Null
eernstg Oct 14, 2021
927bbef
Rebase
eernstg Oct 18, 2021
bb6c3a7
Rebasing
eernstg Oct 27, 2021
6dd5f9d
Rebase
eernstg Nov 1, 2021
c363b81
WIP
eernstg Nov 9, 2021
ea1c7f3
Corrected last part of section Variables
eernstg Nov 10, 2021
100b1d0
Did expression typing, spread element, i2b
eernstg Nov 11, 2021
1b5bcff
Super-bounded types, least and greatest closure
eernstg Nov 12, 2021
7153af9
Assignability, generics
eernstg Nov 12, 2021
e67d0a0
Extreme types
eernstg Nov 12, 2021
5075220
Extreme types, helper functions
eernstg Nov 15, 2021
4710e99
Rebase
eernstg Nov 16, 2021
d2b1c52
.call insertion on nullable type; clean up BlindDefineSymbol
eernstg Nov 16, 2021
738cc6a
Rebase
eernstg Nov 16, 2021
709366a
Main
eernstg Nov 16, 2021
a8a90be
Type Type
eernstg Nov 17, 2021
529885c
Type Type fixes
eernstg Nov 17, 2021
ef4c7d2
More typeType fixes
eernstg Nov 17, 2021
14bc53d
Constant instances (in particular: about canonical instances)
eernstg Nov 18, 2021
b474e68
Corrected variable initialization specification ("has been stored" ra…
eernstg Nov 19, 2021
6d10d12
Small adjustments to Variables
eernstg Nov 19, 2021
94f8157
Rebase
eernstg Nov 26, 2021
3d2afc3
Boolean conversion; type test; made true/false terminology consistent…
eernstg Nov 29, 2021
09c3b24
Constant types; type variable elimination in constants
eernstg Nov 29, 2021
2a99096
Conditional expression; operators && and ||; `if` statements; delete …
eernstg Nov 30, 2021
9c3b3b4
Integrate Null Promotion; put v==null rules into Type Promotion, and …
eernstg Dec 1, 2021
eb17dcc
Null shorting
eernstg Dec 1, 2021
1ebf4c2
Small fixes in section Null Shorting
eernstg Dec 1, 2021
6d257aa
Revisiting all occurrences of \NULL/Null/null
eernstg Dec 2, 2021
b959b04
Did much of Standard ... Bounds
eernstg Dec 3, 2021
459b1a8
Standard bounds
eernstg Dec 7, 2021
8052493
Fixed the "SUB issues" section
eernstg Dec 8, 2021
adbb081
Rebase
eernstg Dec 8, 2021
aab0b66
Rebase
eernstg Dec 8, 2021
43ea69a
Rebase
eernstg Dec 8, 2021
6242145
Rebase
eernstg Dec 9, 2021
9f31551
Rebase
eernstg Dec 10, 2021
f7228ff
Clarified and corrected Canonical Syntax
eernstg Dec 10, 2021
0feb6dc
Fixed subsubsection --> subsection, 2*
eernstg Dec 10, 2021
d4c179e
Typos
eernstg Jan 5, 2022
73cb27e
Whitespace
eernstg Jan 6, 2022
fd249d7
Interface type fixes
eernstg Jan 6, 2022
401d7a7
Sync with specify_null_safety_new_sections_dec21
eernstg Jan 7, 2022
e9a6528
Mark a subtype rule as redundant, in a TODO comment
eernstg Jan 7, 2022
efba59c
Adjust no-loops-in-noSuchMethod example
eernstg Feb 7, 2022
5ea9dff
Adjust no-loops-in-noSuchMethod example
eernstg Feb 8, 2022
acc5cee
Corrected function type subtype rule (bounds); corrected "math" index…
eernstg May 3, 2022
0da925c
Adjust class building types
eernstg May 9, 2022
9bebbbd
Adjust examples declaring non-nullable positional optional parameters…
eernstg Jul 26, 2022
53286a4
Add a TODO to introduce `Any`
eernstg Nov 2, 2022
45fd53a
Correct example in section about super-bounded types
eernstg Nov 3, 2022
bc2f75f
Correction based on https://github.com/dart-lang/language/issues/2679
eernstg Dec 2, 2022
f608055
Specify erasure of intersection types for the semantics of await expr…
eernstg Dec 9, 2022
2056b43
Typo
eernstg Jan 20, 2023
2fcfbca
Introduce \DynamicError, marking all dynamic errors just like compile…
eernstg Feb 2, 2023
90f877b
Changed the error margin markers to use red text
eernstg Feb 2, 2023
ab4a7d5
Correct dynamic type of tear-off with covariant parameter
eernstg May 31, 2023
97c568c
Clarified tear-offs of methods with covariant parameters
eernstg May 31, 2023
3ceacb2
Correct a typo about closurization
eernstg May 31, 2023
d4422d6
Correction: Add definition of normalizedType/topMergeType for member …
eernstg Jun 16, 2023
6c4ea95
Correction: Update dynamic type of covariant parameter to Object?
eernstg Jun 22, 2023
1d0af90
Typo
eernstg Jun 29, 2023
72043ab
Add commentary to emphasize that `new`/`const` can be implicit, and `…
eernstg Jul 5, 2023
a6fdaf6
Add missing updates in section typeVoid
eernstg Jul 6, 2023
dfd145c
Add missing error: default values must be type correct
eernstg Jul 13, 2023
2d1963c
Add a paragraph explaining that the given section is about both optio…
eernstg Jul 13, 2023
953437f
Post-rebase error correction
eernstg Jul 21, 2023
a054183
Correct usages of "final variable" and "constant variable"
eernstg Jul 21, 2023
6160c68
Add missing declaration kind about getter/setter type error
eernstg Sep 11, 2023
bb20f06
Remove obsolete reference to "mixin composition" from section Supercl…
eernstg Sep 29, 2023
ceaaee6
Add comment about default values of noSuchMethod forwarders being und…
eernstg Sep 29, 2023
1a05429
Correct rule about the interface of T?
eernstg Jan 10, 2024
0c38c6c
Correct rule about interfaces of bounded types
eernstg Jan 10, 2024
1ab4770
Corrected many occurrences of "string" to "string literal"
eernstg Feb 22, 2024
365ade0
Update the "parameter name `_...`" error
eernstg Apr 30, 2024
e5b355f
Restore the index marker, define a command for it
eernstg Jun 17, 2024
62fbd08
Corrected the huge rebase operation (removed TODO material)
eernstg Jun 17, 2024
8269c42
Fix obsolete ref
eernstg Aug 12, 2024
68be6c5
Introduce <memberedDeclarationBody> and use it
eernstg Aug 12, 2024
0ee2d0c
Add change log entry
eernstg Aug 12, 2024
866bdb0
WIP
eernstg Oct 17, 2024
26d867b
Clarified class building types
eernstg Nov 14, 2024
4958fcf
Correct the order of "bind formals to actuals", which has been rather…
eernstg Nov 27, 2024
4ae8fcb
Correct the incorrect cleam that Null implements Object
eernstg Feb 14, 2025
f3077a4
Hide links
eernstg Feb 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 19 additions & 15 deletions specification/dart.sty
Original file line number Diff line number Diff line change
@@ -124,11 +124,11 @@
\newenvironment{commentary}[1]{{\color{commentaryColor}\sf{#1}}}{}

% Auxiliary functions.
\newcommand{\flattenName}{\mbox{\it flatten}}
\newcommand{\flattenName}{\metavar{flatten}}
\newcommand{\flatten}[1]{\ensuremath{\flattenName({#1})}}
\newcommand{\futureOrBase}[1]{\ensuremath{\mbox{\it futureOrBase}({#1})}}
\newcommand{\overrides}[1]{\ensuremath{\mbox{\it overrides}({#1})}}
\newcommand{\inherited}[1]{\ensuremath{\mbox{\it inherited}({#1})}}
\newcommand{\futureOrBase}[1]{\ensuremath{\metavar{futureOrBase}({#1})}}
\newcommand{\overrides}[1]{\ensuremath{\metavar{overrides}({#1})}}
\newcommand{\inherited}[1]{\ensuremath{\metavar{inherited}({#1})}}

% Used as a mini-section marker, indicating visibly that a range of
% text (usually just a couple of paragraphs) are concerned with one
@@ -173,9 +173,12 @@
\newcommand{\id}{\metavar{id}}
\newcommand{\op}{\metavar{op}}

% Used in margin to indicate that a term is being defined here.
\newcommand{\IndexMarker}{\ensuremath{^\vartriangle}}

% Used for defining occurrence of phrase, with customized index entry.
\newcommand{\IndexCustom}[2]{%
\leavevmode\marginpar{\ensuremath{_{^\vartriangle}}}\emph{#1}\index{#2}}
\leavevmode\marginpar{\IndexMarker}\emph{#1}\index{#2}}

% Used for the defining occurrence of a local symbol.
\newcommand{\DefineSymbol}[1]{%
@@ -196,11 +199,15 @@

% Same appearance, but not adding an entry to the index.
\newcommand{\NoIndex}[1]{%
\leavevmode\marginpar{\ensuremath{_{^\vartriangle}}}\emph{#1}}
\leavevmode\marginpar{\IndexMarker}\emph{#1}}

% Mark a compile-time error in the margin.
\newcommand{\Error}[1]{%
\leavevmode\marginpar{\ensuremath{_{^\ominus}}}{#1}}
\leavevmode\marginpar{\ensuremath{\textcolor{red}{\ominus}}}{#1}}

% Mark a dynamic error in the margin.
\newcommand{\DynamicError}[1]{%
\leavevmode\marginpar{\textcolor{red}{\Lightning}}{#1}}

% Used to specify comma separated lists of similar symbols.
\newcommand{\List}[3]{\ensuremath{{#1}_{#2},\,\ldots,\ {#1}_{#3}}}
@@ -402,9 +409,9 @@

% Same as \FunctionTypeNamed except suitable for inline usage, hence omitting
% the spacer argument.
\newcommand{\RawFunctionTypeNamed}[8]{%
\newcommand{\RawFunctionTypeNamed}[9]{%
\RawFunctionType{#1}{#2}{#3}{#4}{%
\FunctionTypeNamedParameters{#5}{#6}{#7}{#8}{r}}}
\FunctionTypeNamedParameters{#5}{#6}{#7}{#8}{#9}}}

% A variant of \FunctionTypeNamed that uses the standard symbols,
% that is, a function type with positional optional parameters which
@@ -466,17 +473,14 @@
\newcommand{\SubtypeStd}[2]{\Subtype{\Delta}{#1}{#2}}
% Subtype judgment where the environment is omitted (NE: "no environment").
\newcommand{\SubtypeNE}[2]{\ensuremath{{#1}\,<:\,{#2}}}
\newcommand{\MutualSubtype}[3]{\ensuremath{{#1}\vdash{#2}\,<:>\,{#3}}}
\newcommand{\MutualSubtypeStd}[2]{\MutualSubtype{\Delta}{#1}{#2}}
\newcommand{\MutualSubtypeNE}[2]{\ensuremath{{#1}\,<:>\,{#2}}}

% Judgment expressing that a supertype relation exists.
\newcommand{\Supertype}[3]{\ensuremath{{#1}\vdash{#2}\,:>\,{#3}}}
\newcommand{\SupertypeStd}[2]{\Supertype{\Delta}{#1}{#2}}

% Judgment expressing that an assignability relation exists.
\newcommand{\AssignableRelationSymbol}{\ensuremath{\Longleftrightarrow}}
\newcommand{\Assignable}[3]{%
\ensuremath{{#1}\vdash{#2}\,\AssignableRelationSymbol\,{#3}}}
\newcommand{\AssignableStd}[2]{\Assignable{\Gamma}{#1}{#2}}

% Semantic function delivering the superinterfaces of a class.
\newcommand{\Superinterfaces}[1]{\ensuremath{\metavar{Superinterfaces}({#1})}}
\newcommand{\Superinterface}[2]{{#1}\in\Superinterfaces{#2}}
9,018 changes: 6,256 additions & 2,762 deletions specification/dartLangSpec.tex

Large diffs are not rendered by default.