@@ -20,7 +20,9 @@ source code, tests, and commit messages. See also the `LLVM lexicon`_.
20
20
21
21
archetype
22
22
A placeholder for a generic parameter or an associated type within a
23
- generic context.
23
+ generic context. Sometimes known as a "rigid type variable" in formal
24
+ CS literature. Directly stores its conforming protocols and nested
25
+ archetypes, if any.
24
26
25
27
canonical SIL
26
28
SIL after the
@@ -38,9 +40,12 @@ source code, tests, and commit messages. See also the `LLVM lexicon`_.
38
40
the AST level. See also `witness table `.
39
41
40
42
contextual type
41
- The type of a value or declaration from inside a generic context. This type
42
- may contain `archetypes <archetype> ` and cannot be used directly from
43
- outside the context. Compare with `interface type `.
43
+ 1. The expected type for a Swift sub-expression based on the rest of the
44
+ statement. For example, in the statement ``print(6 * 9) ``, the contextual
45
+ type of the expression ``6 * 9 `` is ``Any ``.
46
+ 2. The type of a value or declaration from inside a potentially generic
47
+ context. This type may contain `archetypes <archetype> ` and cannot be
48
+ used directly from outside the context. Compare with `interface type `.
44
49
45
50
DI (definite initialization / definitive initialization)
46
51
The feature that no uninitialized variables, constants, or properties will
@@ -58,12 +63,18 @@ source code, tests, and commit messages. See also the `LLVM lexicon`_.
58
63
compatibility. See :doc: `LibraryEvolution.rst <LibraryEvolution >`.
59
64
60
65
iff
61
- "if and only if". This term comes from mathematics.
66
+ "`if and only if `__". This term comes from mathematics.
67
+
68
+ __ https://en.wikipedia.org/wiki/If_and_only_if
62
69
63
70
interface type
64
71
The type of a value or declaration outside its generic context. These types
65
- can be compared across declarations but cannot be used directly from within
66
- the context. Compare with `contextual type `.
72
+ are written using "formal" generic types, which only have meaning when
73
+ combined with a particular generic declaration's "generic signature".
74
+ Unlike `contextual types <contextual type> `, interface types store
75
+ conformances and requirements in the generic signature and not in the types
76
+ themselves. They can be compared across declarations but cannot be used
77
+ directly from within the context.
67
78
68
79
IUO (implicitly unwrapped optional)
69
80
A type like Optional, but it implicitly converts to its wrapped type. If
0 commit comments