@@ -6,6 +6,9 @@ Status: Draft
6
6
7
7
## CHANGELOG
8
8
9
+ 2019.09.01
10
+ - Fix incorrect placement of left top rule in constraint solving.
11
+
9
12
2019.09.01
10
13
- Add left top rule to constraint solving.
11
14
- Specify inference constraint solving.
@@ -774,7 +777,9 @@ clauses need be tried.
774
777
- If ` P ` is a legacy type ` P0* ` then the match holds under constraint set ` C ` :
775
778
- Only if ` P0 ` is a subtype match for ` Q ` under constraint set ` C ` .
776
779
- If ` Q ` is a legacy type ` Q0* ` then the match holds under constraint set ` C ` :
777
- - Only if ` P ` is a subtype match for ` Q? ` under constraint set ` C ` .
780
+ - If ` P ` is ` dynamic ` or ` void ` and ` P ` is a subtype match for ` Q0 ` under
781
+ constraint set ` C ` .
782
+ - Or if ` P ` is a subtype match for ` Q0? ` under constraint set ` C ` .
778
783
- If ` Q ` is ` FutureOr<Q0> ` the match holds under constraint set ` C ` :
779
784
- If ` P ` is ` FutureOr<P0> ` and ` P0 ` is a subtype match for ` Q0 ` under
780
785
constraint set ` C ` .
@@ -786,22 +791,21 @@ clauses need be tried.
786
791
- If ` Q ` is ` Q0? ` the match holds under constraint set ` C ` :
787
792
- If ` P ` is ` P0? ` and ` P0 ` is a subtype match for ` Q0 ` under
788
793
constraint set ` C ` .
794
+ - Or if ` P ` is ` dynamic ` or ` void ` and ` Object ` is a subtype match for ` Q0 `
795
+ under constraint set ` C ` .
789
796
- Or if ` P ` is a subtype match for ` Q0 ` under ** non-empty** constraint set
790
- ` C `
791
- - Or if ` P ` is a subtype match for ` Null ` under constraint set ` C `
797
+ ` C ` .
798
+ - Or if ` P ` is a subtype match for ` Null ` under constraint set ` C ` .
792
799
- Or if ` P ` is a subtype match for ` Q0 ` under ** empty** constraint set
793
- ` C `
800
+ ` C ` .
794
801
- If ` P ` is ` FutureOr<P0> ` the match holds under constraint set ` C1 + C2 ` :
795
802
- If ` Future<P0> ` is a subtype match for ` Q ` under constraint set ` C1 `
796
803
- And if ` P0 ` is a subtype match for ` Q ` under constraint set ` C2 `
797
804
- If ` P ` is ` P0? ` the match holds under constraint set ` C1 + C2 ` :
798
805
- If ` P0 ` is a subtype match for ` Q ` under constraint set ` C1 `
799
806
- And if ` Null ` is a subtype match for ` Q ` under constraint set ` C2 `
800
-
801
807
- If ` Q ` is ` dynamic ` , ` Object? ` , or ` void ` then the match holds under no
802
808
constraints.
803
- - If ` P ` is ` dynamic ` or ` void ` then the match holds under constraint set ` C ` if
804
- ` Object? ` is a subtype match for ` Q ` under constraint set ` C ` .
805
809
- If ` P ` is ` Never ` then the match holds under no constraints.
806
810
- If ` Q ` is ` Object ` , then the match holds under no constraints:
807
811
- Only if ` P ` is non-nullable.
0 commit comments