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
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
4625b24
Rebasing
eernstg Oct 7, 2021
517289f
Typos: Escaping braces meant to be code
eernstg Oct 8, 2021
a152d9a
Eliminated text about migration features, adapted the remaining text …
eernstg Oct 8, 2021
98a840e
Rebasing
eernstg Oct 13, 2021
6dfc8dc
Reorganized material on null/Null
eernstg Oct 14, 2021
d5961c8
Rebase
eernstg Oct 18, 2021
199e496
Rebasing
eernstg Oct 27, 2021
cf70cf9
Rebase
eernstg Nov 1, 2021
6c6b193
WIP
eernstg Nov 9, 2021
47ba0fa
Corrected last part of section Variables
eernstg Nov 10, 2021
1195654
Did expression typing, spread element, i2b
eernstg Nov 11, 2021
c3c1172
Super-bounded types, least and greatest closure
eernstg Nov 12, 2021
9b94d28
Assignability, generics
eernstg Nov 12, 2021
4f0d2b9
Extreme types
eernstg Nov 12, 2021
c8d1feb
Extreme types, helper functions
eernstg Nov 15, 2021
85bb831
Rebase
eernstg Nov 16, 2021
93292e3
.call insertion on nullable type; clean up BlindDefineSymbol
eernstg Nov 16, 2021
fb56156
Rebase
eernstg Nov 16, 2021
8e38707
Main
eernstg Nov 16, 2021
80c5c70
Type Type
eernstg Nov 17, 2021
f7897b9
Type Type fixes
eernstg Nov 17, 2021
6ad7425
More typeType fixes
eernstg Nov 17, 2021
bac9710
Constant instances (in particular: about canonical instances)
eernstg Nov 18, 2021
a717e3c
Corrected variable initialization specification ("has been stored" ra…
eernstg Nov 19, 2021
2773e41
Small adjustments to Variables
eernstg Nov 19, 2021
0a8721c
Rebase
eernstg Nov 26, 2021
466f194
Boolean conversion; type test; made true/false terminology consistent…
eernstg Nov 29, 2021
da80de1
Constant types; type variable elimination in constants
eernstg Nov 29, 2021
c36486f
Conditional expression; operators && and ||; `if` statements; delete …
eernstg Nov 30, 2021
49d24a0
Integrate Null Promotion; put v==null rules into Type Promotion, and …
eernstg Dec 1, 2021
4a7f5a3
Null shorting
eernstg Dec 1, 2021
5492e49
Small fixes in section Null Shorting
eernstg Dec 1, 2021
9c964df
Revisiting all occurrences of \NULL/Null/null
eernstg Dec 2, 2021
8085e57
Did much of Standard ... Bounds
eernstg Dec 3, 2021
2f8f756
Standard bounds
eernstg Dec 7, 2021
1163134
Fixed the "SUB issues" section
eernstg Dec 8, 2021
82060ff
Rebase
eernstg Dec 8, 2021
e2b4690
Rebase
eernstg Dec 8, 2021
4b99cf1
Rebase
eernstg Dec 8, 2021
124bb77
Rebase
eernstg Dec 9, 2021
bc2b281
Rebase
eernstg Dec 10, 2021
e448598
Clarified and corrected Canonical Syntax
eernstg Dec 10, 2021
a5ab442
Fixed subsubsection --> subsection, 2*
eernstg Dec 10, 2021
db09dc1
Typos
eernstg Jan 5, 2022
126852b
Whitespace
eernstg Jan 6, 2022
08d1c17
Interface type fixes
eernstg Jan 6, 2022
359cdbc
Sync with specify_null_safety_new_sections_dec21
eernstg Jan 7, 2022
e018f7f
Mark a subtype rule as redundant, in a TODO comment
eernstg Jan 7, 2022
af22bd4
Adjust no-loops-in-noSuchMethod example
eernstg Feb 7, 2022
0f6803f
Adjust no-loops-in-noSuchMethod example
eernstg Feb 8, 2022
dab8a9e
Corrected function type subtype rule (bounds); corrected "math" index…
eernstg May 3, 2022
b6b9eac
Adjust class building types
eernstg May 9, 2022
348176b
Adjust examples declaring non-nullable positional optional parameters…
eernstg Jul 26, 2022
5ad5749
Add a TODO to introduce `Any`
eernstg Nov 2, 2022
84258ab
Correct example in section about super-bounded types
eernstg Nov 3, 2022
ad985a7
Correction based on https://github.com/dart-lang/language/issues/2679
eernstg Dec 2, 2022
b92431d
Specify erasure of intersection types for the semantics of await expr…
eernstg Dec 9, 2022
c628bf4
Typo
eernstg Jan 20, 2023
9a23a59
Introduce \DynamicError, marking all dynamic errors just like compile…
eernstg Feb 2, 2023
fe3d397
Changed the error margin markers to use red text
eernstg Feb 2, 2023
e74ebfe
Correct dynamic type of tear-off with covariant parameter
eernstg May 31, 2023
e053eae
Clarified tear-offs of methods with covariant parameters
eernstg May 31, 2023
ce5a1be
Correct a typo about closurization
eernstg May 31, 2023
be997df
Correction: Add definition of normalizedType/topMergeType for member …
eernstg Jun 16, 2023
b723870
Correction: Update dynamic type of covariant parameter to Object?
eernstg Jun 22, 2023
13938fd
Typo
eernstg Jun 29, 2023
f100564
Add commentary to emphasize that `new`/`const` can be implicit, and `…
eernstg Jul 5, 2023
58e7cb8
Add missing updates in section typeVoid
eernstg Jul 6, 2023
7a2b670
Add missing error: default values must be type correct
eernstg Jul 13, 2023
82fe85c
Add a paragraph explaining that the given section is about both optio…
eernstg Jul 13, 2023
5cede0f
Post-rebase error correction
eernstg Jul 21, 2023
cf37b32
Correct usages of "final variable" and "constant variable"
eernstg Jul 21, 2023
64da78b
Add missing declaration kind about getter/setter type error
eernstg Sep 11, 2023
480a81d
Remove obsolete reference to "mixin composition" from section Supercl…
eernstg Sep 29, 2023
cd38a42
Add comment about default values of noSuchMethod forwarders being und…
eernstg Sep 29, 2023
9f917a7
Correct rule about the interface of T?
eernstg Jan 10, 2024
0360040
Correct rule about interfaces of bounded types
eernstg Jan 10, 2024
f43c0ad
Corrected many occurrences of "string" to "string literal"
eernstg Feb 22, 2024
c0aed8c
Update the "parameter name `_...`" error
eernstg Apr 30, 2024
764af47
Restore the index marker, define a command for it
eernstg Jun 17, 2024
11c8a66
Corrected the huge rebase operation (removed TODO material)
eernstg Jun 17, 2024
5eb2bd1
Fix obsolete ref
eernstg Aug 12, 2024
d46c5ae
Introduce <memberedDeclarationBody> and use it
eernstg Aug 12, 2024
9ad5951
Add change log entry
eernstg Aug 12, 2024
10e4f38
WIP
eernstg Oct 17, 2024
5eef9bd
Clarified class building types
eernstg Nov 14, 2024
ca1d5db
Correct the order of "bind formals to actuals", which has been rather…
eernstg Nov 27, 2024
c598c26
Correct the incorrect cleam that Null implements Object
eernstg Feb 14, 2025
f6d64be
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
Expand Up @@ -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
Expand Down Expand Up @@ -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]{%
Expand All @@ -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}}}
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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}}
Expand Down
Loading
Loading