Skip to content

Commit d68b04d

Browse files
committed
Merge branch 'draft-v8' into draft-v9
2 parents a52fd26 + 779a05a commit d68b04d

82 files changed

Lines changed: 44569 additions & 38177 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/dependencies/EcmaTC49.BuildGrammar.2.1.0.nupkg renamed to .github/workflows/dependencies/EcmaTC49.BuildGrammar.2.4.0.nupkg

259 KB
Binary file not shown.
5.95 KB
Binary file not shown.

.github/workflows/do-not-merge-label-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- 'do not merge'
2323
steps:
2424
- name: Harden Runner
25-
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
25+
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
2626
with:
2727
egress-policy: audit
2828

.github/workflows/grammar-validator.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
# Install build grammar global tool
3636
- name: Install BuildGrammar tool
3737
run: |
38-
dotnet tool install --version 2.1.0 --global --add-source ./.github/workflows/dependencies/ EcmaTC49.BuildGrammar
38+
dotnet tool install --version 2.4.0 --global --add-source ./.github/workflows/dependencies/ EcmaTC49.BuildGrammar
3939
4040
- name: run validate
4141
run: |

.github/workflows/markdownlint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929

3030
steps:
3131
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
32-
- uses: DavidAnson/markdownlint-cli2-action@07035fd053f7be764496c0f8d8f9f41f98305101 # v22.0.0
32+
- uses: DavidAnson/markdownlint-cli2-action@ce4853d43830c74c1753b39f3cf40f71c2031eb9 # v23.0.0
3333
with:
3434
config: ".markdownlint-cli2.jsonc"
3535
globs: "standard/*.md"

standard/README.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@
102102
- [§8.3.9](types.md#839-the-bool-type) The Bool type
103103
- [§8.3.10](types.md#8310-enumeration-types) Enumeration types
104104
- [§8.3.11](types.md#8311-tuple-types) Tuple types
105+
- [§8.3.11.1](types.md#83111-general) General
106+
- [§8.3.11.2](types.md#83112-eliding-intermediate-tuple-creation) Eliding intermediate tuple creation
107+
- [§8.3.11.3](types.md#83113-runtime-representation) Runtime representation
105108
- [§8.3.12](types.md#8312-nullable-value-types) Nullable value types
106109
- [§8.3.13](types.md#8313-boxing-and-unboxing) Boxing and unboxing
107110
- [§8.4](types.md#84-constructed-types) Constructed types
@@ -175,7 +178,7 @@
175178
- [§9.4.4.22](variables.md#94422-general-rules-for-simple-expressions) General rules for simple expressions
176179
- [§9.4.4.23](variables.md#94423-general-rules-for-expressions-with-embedded-expressions) General rules for expressions with embedded expressions
177180
- [§9.4.4.24](variables.md#94424-invocation-expressions-and-object-creation-expressions) Invocation expressions and object creation expressions
178-
- [§9.4.4.25](variables.md#94425-simple-assignment-expressions) Simple assignment expressions
181+
- [§9.4.4.25](variables.md#94425-simple-and-deconstructing-assignment-expressions) Simple and deconstructing assignment expressions
179182
- [§9.4.4.26](variables.md#94426--expressions) && expressions
180183
- [§9.4.4.27](variables.md#94427--expressions) || expressions
181184
- [§9.4.4.28](variables.md#94428--expressions) ! expressions
@@ -328,7 +331,7 @@
328331
- [§12.8.3](expressions.md#1283-interpolated-string-expressions) Interpolated string expressions
329332
- [§12.8.4](expressions.md#1284-simple-names) Simple names
330333
- [§12.8.5](expressions.md#1285-parenthesized-expressions) Parenthesized expressions
331-
- [§12.8.6](expressions.md#1286-tuple-expressions) Tuple expressions
334+
- [§12.8.6](expressions.md#1286-tuple-literals) Tuple literals
332335
- [§12.8.7](expressions.md#1287-member-access) Member access
333336
- [§12.8.7.1](expressions.md#12871-general) General
334337
- [§12.8.7.2](expressions.md#12872-identical-simple-names-and-type-names) Identical simple names and type names
@@ -450,9 +453,12 @@
450453
- [§12.23](expressions.md#1223-assignment-operators) Assignment operators
451454
- [§12.23.1](expressions.md#12231-general) General
452455
- [§12.23.2](expressions.md#12232-simple-assignment) Simple assignment
453-
- [§12.23.3](expressions.md#12233-ref-assignment) Ref assignment
454-
- [§12.23.4](expressions.md#12234-compound-assignment) Compound assignment
455-
- [§12.23.5](expressions.md#12235-event-assignment) Event assignment
456+
- [§12.23.3](expressions.md#12233-deconstructing-assignment) Deconstructing assignment
457+
- [§12.23.3.1](expressions.md#122331-general) General
458+
- [§12.23.3.2](expressions.md#122332-abridged-deconstructors) Abridged deconstructors
459+
- [§12.23.4](expressions.md#12234-ref-assignment) Ref assignment
460+
- [§12.23.5](expressions.md#12235-compound-assignment) Compound assignment
461+
- [§12.23.6](expressions.md#12236-event-assignment) Event assignment
456462
- [§12.24](expressions.md#1224-expression) Expression
457463
- [§12.25](expressions.md#1225-constant-expressions) Constant expressions
458464
- [§12.26](expressions.md#1226-boolean-expressions) Boolean expressions

standard/arrays.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Elements of arrays created by *array_creation_expression*s are always initialize
114114
115115
Array elements are accessed using the *array access* variant of *element_access* expressions ([§12.8.12.2](expressions.md#128122-array-access)) of the form `A[I₁, I₂, ..., Iₓ]`, where `A` is an expression of an array type and each `Iₑ` is an expression of type `int`, `uint`, `long`, `ulong`, or can be implicitly converted to one or more of these types. The result of an array access is a variable reference ([§9.5](variables.md#95-variable-references)) to the array element selected by the indices.
116116
117-
Array elements of single-dimensional arrays can also be accessed using an array access expression where the sole index, `I₁`, is an expression of type `Index`, `Range`, or can be implicitly converted to one or both of these types. If `I₁` is of type `Index`, or has been implicitly converted to that type, then the result of the array access is a variable reference to the array element selected by the index value. If `I₁` is of type `Range`, or has been implicitly converted to that type, then the result of the element access is a new array formed from a shallow copy of the array elements with indices in the `Range`, maintaining the element order.
117+
Array elements of single-dimensional arrays can also be accessed using an array access expression where the sole index, `I₁`, is an expression of type `Index`, `Range`, or can be implicitly converted to one or both of these types. If `I₁` is of type `Index`, or has been implicitly converted to that type, then the result of the array access is a variable reference to the array element selected by the index value. If `I₁` is of type `Range`, or has been implicitly converted to that type, then the result of the array access is a new array formed from a shallow copy of the array elements with indices in the `Range`, maintaining the element order.
118118
119119
The elements of an array can be enumerated using a `foreach` statement ([§13.9.5](statements.md#1395-the-foreach-statement)).
120120

standard/attributes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1109,7 +1109,7 @@ It is an error if the `System.Runtime.CompilerServices.EnumeratorCancellation` a
11091109
11101110
- The `EnumeratorCancellation` attribute is applied to a parameter of a type other than `CancellationToken`,
11111111
- or if the `EnumeratorCancellation` attribute is applied to a parameter on a method that is not an asynchronous iterator ([§15.15](classes.md#1515-synchronous-and-asynchronous-iterators)),
1112-
- or if the `EnumeratorCancellation` attribute is applied to a parameter on a method that returns an asynchronous enumerable interface ([§15.15.3](classes.md#15153-enumerable-interfaces)) rather than an asynchronous enumerator interface ([§15.15.2](classes.md#15152-enumerator-interfaces)).
1112+
- or if the `EnumeratorCancellation` attribute is applied to a parameter on a method that returns an asynchronous enumerator interface ([§15.15.2](classes.md#15152-enumerator-interfaces)) rather than an asynchronous enumerable interface ([§15.15.3](classes.md#15153-enumerable-interfaces)).
11131113
11141114
The iterator will not have access to the `CancellationToken` argument for `GetAsyncEnumerator` when no attributes have this parameter.
11151115

standard/basic-concepts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ Depending on the context in which a member declaration takes place, only certain
282282
> *Note*: A type declared as a member of a class can have any of the permitted kinds of declared accessibility, whereas a type declared as a member of a namespace can have only `public` or `internal` declared accessibility. *end note*
283283
- Struct members can have `public`, `internal`, or `private` declared accessibility and default to `private` declared accessibility because structs are implicitly sealed. Struct members introduced in a `struct` (that is, not inherited by that struct) cannot have `protected`, `protected internal`, or `private protected` declared accessibility.
284284
> *Note*: A type declared as a member of a struct can have `public`, `internal`, or `private` declared accessibility, whereas a type declared as a member of a namespace can have only `public` or `internal` declared accessibility. *end note*
285-
- Interface members implicitly have `public` declared accessibility. No access modifiers are allowed on interface member declarations.
285+
- Interface members implicitly have `public` declared accessibility.
286286
- Enumeration members implicitly have `public` declared accessibility. No access modifiers are allowed on enumeration member declarations.
287287
288288
### 7.5.3 Accessibility domains

standard/classes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3851,7 +3851,7 @@ Once a particular non-ref-valued property or non-ref-valued indexer has been sel
38513851
38523852
- If the usage is as a value ([§12.2.2](expressions.md#1222-values-of-expressions)), the get accessor shall exist and be accessible.
38533853
- If the usage is as the target of a simple assignment ([§12.23.2](expressions.md#12232-simple-assignment)), the set accessor shall exist and be accessible.
3854-
- If the usage is as the target of compound assignment ([§12.23.4](expressions.md#12234-compound-assignment)), or as the target of the `++` or `--` operators ([§12.8.16](expressions.md#12816-postfix-increment-and-decrement-operators), [§12.9.7](expressions.md#1297-prefix-increment-and-decrement-operators)), both the get accessors and the set accessor shall exist and be accessible.
3854+
- If the usage is as the target of compound assignment ([§12.23.5](expressions.md#12235-compound-assignment)), or as the target of the `++` or `--` operators ([§12.8.16](expressions.md#12816-postfix-increment-and-decrement-operators), [§12.9.7](expressions.md#1297-prefix-increment-and-decrement-operators)), both the get accessors and the set accessor shall exist and be accessible.
38553855
38563856
> *Example*: In the following example, the property `A.Text` is hidden by the property `B.Text`, even in contexts where only the set accessor is called. In contrast, the property `B.Count` is not accessible to class `M`, so the accessible property `A.Count` is used instead.
38573857
>
@@ -4101,7 +4101,7 @@ An event can be used as the left operand of the `+=` and `-=` operators. These
41014101

41024102
The only operations that are permitted on an event by code that is outside the type in which that event is declared, are `+=` and `-=`. Therefore, while such code can add and remove handlers for an event, it cannot directly obtain or modify the underlying list of event handlers.
41034103

4104-
In an operation of the form `x += y` or `x –= y`, when `x` is an event the result of the operation has type `void` ([§12.23.5](expressions.md#12235-event-assignment)) (as opposed to having the type of `x`, with the value of `x` after the assignment, as for other the `+=` and `-=` operators defined on non-event types). This prevents external code from indirectly examining the underlying delegate of an event.
4104+
In an operation of the form `x += y` or `x –= y`, when `x` is an event the result of the operation has type `void` ([§12.23.6](expressions.md#12236-event-assignment)) (as opposed to having the type of `x`, with the value of `x` after the assignment, as for other the `+=` and `-=` operators defined on non-event types). This prevents external code from indirectly examining the underlying delegate of an event.
41054105

41064106
> *Example*: The following example shows how event handlers are attached to instances of the `Button` class:
41074107
>

0 commit comments

Comments
 (0)