Commit 23ace7d
committed
[ConstraintSystem] Store declaration context in which application occurs in
This is required because `ApplicableFunction` constraint can
inject member reference constraints that require a declaration
context.
For example, `_ = { Double(...) }` would now produce a disjunction
for `Double.init` where overload choice declaration contexts point
to the closure instead of the enclosing context.
This addresses a long-standing FIXME in `simplifyApplicableFnConstraint`
and helps with disjunction optimizer because its correctness depends on
correct identification of declaration contexts where applications happen.ApplicableFunction constraint1 parent d24f22e commit 23ace7d
File tree
5 files changed
+185
-35
lines changed- include/swift/Sema
- lib/Sema
- unittests/Sema
5 files changed
+185
-35
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
380 | 380 | | |
381 | 381 | | |
382 | 382 | | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | 383 | | |
388 | 384 | | |
389 | 385 | | |
| |||
439 | 435 | | |
440 | 436 | | |
441 | 437 | | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
442 | 453 | | |
443 | 454 | | |
444 | 455 | | |
| |||
495 | 506 | | |
496 | 507 | | |
497 | 508 | | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
498 | 514 | | |
499 | 515 | | |
500 | 516 | | |
| |||
580 | 596 | | |
581 | 597 | | |
582 | 598 | | |
583 | | - | |
| 599 | + | |
584 | 600 | | |
585 | 601 | | |
586 | 602 | | |
| |||
739 | 755 | | |
740 | 756 | | |
741 | 757 | | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
742 | 761 | | |
743 | 762 | | |
744 | 763 | | |
| |||
758 | 777 | | |
759 | 778 | | |
760 | 779 | | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
761 | 783 | | |
762 | 784 | | |
763 | 785 | | |
| |||
851 | 873 | | |
852 | 874 | | |
853 | 875 | | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
854 | 891 | | |
855 | 892 | | |
856 | 893 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4965 | 4965 | | |
4966 | 4966 | | |
4967 | 4967 | | |
4968 | | - | |
| 4968 | + | |
4969 | 4969 | | |
4970 | 4970 | | |
4971 | 4971 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13107 | 13107 | | |
13108 | 13108 | | |
13109 | 13109 | | |
13110 | | - | |
| 13110 | + | |
13111 | 13111 | | |
13112 | 13112 | | |
13113 | 13113 | | |
13114 | 13114 | | |
13115 | 13115 | | |
13116 | | - | |
13117 | | - | |
13118 | | - | |
13119 | | - | |
13120 | 13116 | | |
13121 | 13117 | | |
13122 | 13118 | | |
| |||
13173 | 13169 | | |
13174 | 13170 | | |
13175 | 13171 | | |
13176 | | - | |
| 13172 | + | |
13177 | 13173 | | |
13178 | 13174 | | |
13179 | 13175 | | |
| |||
13203 | 13199 | | |
13204 | 13200 | | |
13205 | 13201 | | |
13206 | | - | |
| 13202 | + | |
13207 | 13203 | | |
13208 | 13204 | | |
13209 | 13205 | | |
| |||
13370 | 13366 | | |
13371 | 13367 | | |
13372 | 13368 | | |
13373 | | - | |
| 13369 | + | |
13374 | 13370 | | |
13375 | 13371 | | |
13376 | | - | |
| 13372 | + | |
13377 | 13373 | | |
13378 | 13374 | | |
13379 | 13375 | | |
| |||
13472 | 13468 | | |
13473 | 13469 | | |
13474 | 13470 | | |
13475 | | - | |
| 13471 | + | |
13476 | 13472 | | |
13477 | 13473 | | |
13478 | 13474 | | |
| |||
16204 | 16200 | | |
16205 | 16201 | | |
16206 | 16202 | | |
16207 | | - | |
| 16203 | + | |
16208 | 16204 | | |
16209 | | - | |
| 16205 | + | |
16210 | 16206 | | |
16211 | 16207 | | |
16212 | 16208 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
91 | 90 | | |
92 | 91 | | |
93 | 92 | | |
94 | | - | |
95 | 93 | | |
96 | 94 | | |
97 | 95 | | |
| |||
120 | 118 | | |
121 | 119 | | |
122 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
123 | 125 | | |
124 | 126 | | |
125 | 127 | | |
| |||
287 | 289 | | |
288 | 290 | | |
289 | 291 | | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
290 | 313 | | |
291 | 314 | | |
292 | 315 | | |
| |||
986 | 1009 | | |
987 | 1010 | | |
988 | 1011 | | |
989 | | - | |
| 1012 | + | |
990 | 1013 | | |
991 | 1014 | | |
992 | 1015 | | |
| |||
996 | 1019 | | |
997 | 1020 | | |
998 | 1021 | | |
999 | | - | |
1000 | | - | |
1001 | | - | |
1002 | | - | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
1006 | | - | |
1007 | | - | |
1008 | 1022 | | |
| 1023 | + | |
1009 | 1024 | | |
1010 | 1025 | | |
1011 | 1026 | | |
1012 | | - | |
| 1027 | + | |
1013 | 1028 | | |
1014 | 1029 | | |
1015 | 1030 | | |
1016 | | - | |
| 1031 | + | |
1017 | 1032 | | |
1018 | 1033 | | |
1019 | | - | |
1020 | | - | |
1021 | 1034 | | |
1022 | 1035 | | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
1023 | 1045 | | |
1024 | 1046 | | |
1025 | 1047 | | |
| |||
1051 | 1073 | | |
1052 | 1074 | | |
1053 | 1075 | | |
1054 | | - | |
| 1076 | + | |
1055 | 1077 | | |
1056 | 1078 | | |
1057 | 1079 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
0 commit comments