Skip to content

Commit

Permalink
[create-pull-request] automated change (dotnet#1033)
Browse files Browse the repository at this point in the history
Co-authored-by: jskeet <jskeet@users.noreply.github.com>
  • Loading branch information
github-actions[bot] and jskeet authored Jan 10, 2024
1 parent e202391 commit 268df1b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion standard/conversions.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ The pre-defined implicit conversions always succeed and never cause exceptions t
> *Note*: Properly designed user-defined implicit conversions should exhibit these characteristics as well. *end note*
For the purposes of conversion, the types `object` and `dynamic` are identity convertible10.2.2).
For the purposes of conversion, the types `object` and `dynamic` are identity convertible ([§10.2.2](conversions.md#1022-identity-conversion)).
However, dynamic conversions ([§10.2.10](conversions.md#10210-implicit-dynamic-conversions) and10.3.8](conversions.md#1038-explicit-dynamic-conversions)) apply only to expressions of type `dynamic` ([§8.2.4](types.md#824-the-dynamic-type)).
Expand Down
6 changes: 3 additions & 3 deletions standard/types.md
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ There does not need to exist a `System.ValueTuple<...>` declaration that directl
Element names within a tuple type shall be distinct. A tuple element name of the form `ItemX`, where `X` is any sequence of non-`0`-initiated decimal digits that could represent the position of a tuple element, is only permitted at the position denoted by `X`.
The optional element names are not represented in the `ValueTuple<...>` types, and are not stored in the runtime representation of a tuple value. Identity conversions (§10.2.2) exist between tuples with identity-convertible sequences of element types.
The optional element names are not represented in the `ValueTuple<...>` types, and are not stored in the runtime representation of a tuple value. Identity conversions ([§10.2.2](conversions.md#1022-identity-conversion)) exist between tuples with identity-convertible sequences of element types.
The `new` operator [§12.8.16.2](expressions.md#128162-object-creation-expressions) cannot be applied with the tuple type syntax `new (T1, ..., Tn)`. Tuple values can be created from tuple expressions ([§12.8.6](expressions.md#1286-tuple-expressions)), or by applying the `new` operator directly to a type constructed from `ValueTuple<...>`.
Expand Down Expand Up @@ -546,7 +546,7 @@ A closed type is a type that is not an open type.
At run-time, all of the code within a generic type declaration is executed in the context of a closed constructed type that was created by applying type arguments to the generic declaration. Each type parameter within the generic type is bound to a particular run-time type. The run-time processing of all statements and expressions always occurs with closed types, and open types occur only during compile-time processing.
Two closed constructed types are identity convertible (§10.2.2) if they are constructed from the same unbound generic type, and an identity conversion exists between each of their corresponding type arguments. The corresponding type arguments may themselves be closed constructed types or tuples that are identity convertible. Closed constructed types that are identity convertible share a single set of static variables. Otherwise, each closed constructed type has its own set of static variables. Since an open type does not exist at run-time, there are no static variables associated with an open type.
Two closed constructed types are identity convertible ([§10.2.2](conversions.md#1022-identity-conversion)) if they are constructed from the same unbound generic type, and an identity conversion exists between each of their corresponding type arguments. The corresponding type arguments may themselves be closed constructed types or tuples that are identity convertible. Closed constructed types that are identity convertible share a single set of static variables. Otherwise, each closed constructed type has its own set of static variables. Since an open type does not exist at run-time, there are no static variables associated with an open type.
### 8.4.4 Bound and unbound types
Expand Down Expand Up @@ -672,7 +672,7 @@ The type `dynamic` is considered identical to `object` except in the following r
- Type inference ([§12.6.3](expressions.md#1263-type-inference)) will prefer `dynamic` over `object` if both are candidates.
- `dynamic` cannot be used as
- the type in an *object_creation_expression* ([§12.8.16.2](expressions.md#128162-object-creation-expressions))
- a *class_base* (§15.2.4)
- a *class_base* ([§15.2.4](classes.md#1524-class-base-specification))
- a *predefined_type* in a *member_access* ([§12.8.7.1](expressions.md#12871-general))
- the operand of the `typeof` operator
- an attribute argument
Expand Down

0 comments on commit 268df1b

Please sign in to comment.