Commit 778a413
committed
[NCGenerics] ensure ExistentialLayout is minimal
Instead of injecting Copyable & Escapable protocols into every
ExistentialLayout, only add those protocols if the existing protocols
don't already imply them. This simplifies things like `any Error`
protocol, so it still only lists one protocol in its existential layout.
But existentials like `any NoCopyP` still end up with a Copyable in its
layout.1 parent af7ff43 commit 778a413
File tree
5 files changed
+62
-15
lines changed- include/swift/AST
- lib
- AST
- Sema
5 files changed
+62
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5171 | 5171 | | |
5172 | 5172 | | |
5173 | 5173 | | |
| 5174 | + | |
| 5175 | + | |
| 5176 | + | |
| 5177 | + | |
5174 | 5178 | | |
5175 | 5179 | | |
5176 | 5180 | | |
| |||
5216 | 5220 | | |
5217 | 5221 | | |
5218 | 5222 | | |
5219 | | - | |
5220 | | - | |
5221 | | - | |
| 5223 | + | |
| 5224 | + | |
| 5225 | + | |
5222 | 5226 | | |
5223 | 5227 | | |
5224 | 5228 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5873 | 5873 | | |
5874 | 5874 | | |
5875 | 5875 | | |
| 5876 | + | |
5876 | 5877 | | |
5877 | 5878 | | |
5878 | 5879 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6414 | 6414 | | |
6415 | 6415 | | |
6416 | 6416 | | |
6417 | | - | |
6418 | | - | |
6419 | | - | |
6420 | | - | |
6421 | | - | |
6422 | | - | |
6423 | | - | |
6424 | | - | |
| 6417 | + | |
| 6418 | + | |
| 6419 | + | |
| 6420 | + | |
| 6421 | + | |
| 6422 | + | |
6425 | 6423 | | |
6426 | 6424 | | |
6427 | 6425 | | |
| |||
6563 | 6561 | | |
6564 | 6562 | | |
6565 | 6563 | | |
| 6564 | + | |
| 6565 | + | |
| 6566 | + | |
6566 | 6567 | | |
6567 | 6568 | | |
6568 | 6569 | | |
| |||
6571 | 6572 | | |
6572 | 6573 | | |
6573 | 6574 | | |
| 6575 | + | |
| 6576 | + | |
| 6577 | + | |
| 6578 | + | |
| 6579 | + | |
| 6580 | + | |
| 6581 | + | |
| 6582 | + | |
| 6583 | + | |
| 6584 | + | |
| 6585 | + | |
| 6586 | + | |
| 6587 | + | |
| 6588 | + | |
| 6589 | + | |
| 6590 | + | |
| 6591 | + | |
| 6592 | + | |
| 6593 | + | |
| 6594 | + | |
| 6595 | + | |
| 6596 | + | |
| 6597 | + | |
| 6598 | + | |
6574 | 6599 | | |
6575 | 6600 | | |
6576 | 6601 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
345 | 345 | | |
346 | 346 | | |
347 | 347 | | |
348 | | - | |
349 | | - | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
350 | 353 | | |
351 | 354 | | |
352 | 355 | | |
| |||
360 | 363 | | |
361 | 364 | | |
362 | 365 | | |
363 | | - | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
364 | 369 | | |
365 | 370 | | |
366 | 371 | | |
367 | 372 | | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
368 | 385 | | |
369 | 386 | | |
370 | 387 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
415 | 415 | | |
416 | 416 | | |
417 | 417 | | |
418 | | - | |
| 418 | + | |
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
| |||
0 commit comments