You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -798,10 +791,23 @@ An *unfixed* type variable `Xᵢ` *depends directly on* an *unfixed* type varia
798
791
799
792
`Xₑ` *dependson* `Xᵢ` if `Xₑ` *dependsdirectlyon* `Xᵢ` orif `Xᵢ` *dependsdirectlyon* `Xᵥ` and `Xᵥ` *dependson* `Xₑ`. Thus “*dependson*” isthetransitivebutnotreflexiveclosureof “*dependsdirectlyon*”.
800
793
794
+
#### §input-type-inference Input type inferences
795
+
796
+
An *inputtypeinference* ismade *from* anexpression `E` *to* atype `T` inthefollowingway:
797
+
798
+
-If `E` isatupleexpression (§12.8.6) witharity `N` andelements `Eᵢ`, and `T` isatupletypewitharity `N` withacorrespondingelementtype `Tₑ` or `T` isanullablevaluetype `T0?` and `T0` isatupletypewitharity `N` thathasacorrespondingelementtype `Tₑ`, thenfor each `Eᵢ`, an input type inference is made from `Eᵢ` to `Tₑ`.
799
+
- If `E` is an anonymous function, an *explicit parameter type inference* ([§12.6.3.8](expressions.md#12638-explicit-parameter-type-inferences)) ismade *from* `E` *to* `T`
An *outputtypeinference* ismade *from* anexpression `E` *to* atypeTinthefollowingway:
808
+
An *outputtypeinference* ismade *from* anexpression `E` *to* atype`T`inthefollowingway:
804
809
810
+
-If `E` isatupleexpressionwitharity `N` andelements `Eᵢ`, and `T` isatupletypewitharity `N` acorrespondingelementtype `Tₑ` or `T` isanullablevaluetype `T0?` and `T0` isatupletypewitharity `N` thathasacorrespondingelementtype `Tₑ`, thenfor each `Eᵢ` an output type inference is made from `Eᵢ` to `Tₑ`.
805
811
- If `E` is an anonymous function with inferred return type `U` ([§12.6.3.13](expressions.md#126313-inferred-return-type)) and `T` isadelegatetypeorexpressiontreetypewithreturntype `Tₓ`, thena*lower-boundinference* ([§12.6.3.10](expressions.md#126310-lower-bound-inferences)) ismade *from* `U` *to* `Tₓ`.
0 commit comments