Skip to content

Commit e48adcc

Browse files
Nigel-Ecmajskeet
authored andcommitted
Fix list indentation as best we know how to match original author’s intention (see Standard v5)
1 parent 70d39da commit e48adcc

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

standard/expressions.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,7 @@ An *exact inference* *from* a type `U` *to* a type `V` is made as follows:
829829
- `V` is an array type `V₁[...]` and `U` is an array type `U₁[...]` of the same rank
830830
- `V` is the type `V?` and `U` is the type `U₁`
831831
- `V` is a constructed type `C<V₁...Vₑ>` and `U` is a constructed type `C<U₁...Uₑ>`
832+
832833
If any of these cases apply then an *exact inference* is made from each `Uᵢ` to the corresponding `Vᵢ`.
833834
- Otherwise, no inferences are made.
834835
@@ -843,6 +844,7 @@ A *lower-bound inference from* a type `U` *to* a type `V` is made as follows:
843844
- `V` is one of `IEnumerable<V₁>`, `ICollection<V>`, `IReadOnlyList<V>>`, `IReadOnlyCollection<V>` or `IList<V>` and `U` is a single-dimensional array type `U₁[]`
844845
- `V` is a constructed `class`, `struct`, `interface` or `delegate` type `C<V₁...Vₑ>` and there is a unique type `C<U₁...Uₑ>` such that `U` (or, if `U` is a type `parameter`, its effective base class or any member of its effective interface set) is identical to, `inherits` from (directly or indirectly), or implements (directly or indirectly) `C<U...U>`.
845846
- (Theuniquenessrestriction means that in the case interface `C<T>{} class U: C<X>, C<Y>{}`, then no inference is made when inferring from `U` to `C<T>` because `U₁` could be `X` or `Y`.)
847+
846848
If any of these cases apply then an inference is made from each `Uᵢ` to the corresponding `Vᵢ` as follows:
847849
- If `Uᵢ` is not known to be a reference type then an *exact inference* is made
848850
- Otherwise, if `U` is an array type then a *lower-bound inference* is made
@@ -863,6 +865,7 @@ An *upper-bound inference from* a type `U` *to* a type `V` is made as follows:
863865
- `U` is the type `U1?` and `V` is the type `V1?`
864866
- `U` is constructed class, struct, interface or delegate type `C<U₁...Uₑ>` and `V` is a `class, struct, interface` or `delegate` type which is `identical` to, `inherits` from (directly or indirectly), or implements (directly or indirectly) a unique type `C<V...V>`
865867
- (Theuniquenessrestriction means that given an interface `C<T>{} class V<Z>: C<X<Z>>, C<Y<Z>>{}`, then no inference is made when inferring from `C<U₁>` to `V<Q>`. Inferences are not made from `U₁` to either `X<Q>` or `Y<Q>`.)
868+
866869
If any of these cases apply then an inference is made from each `Uᵢ` to the corresponding `Vᵢ` as follows:
867870
- If `Uᵢ` is not known to be a reference type then an *exact inference* is made
868871
- Otherwise, if `V` is an array type then an *upper-bound inference* is made

0 commit comments

Comments
 (0)