Commit 6df2c6e
committed
Fix constToLiteral
We previously converted an expression with constant type to a literal if
the expression was idempotent. This can hide side effects in the case where
the expression is a selection from an object or lazy val. Demanding purity
instead prodcues tons of errors involving inline vals on objects.
We now demand idempotency if the expression refers to an inline val (or
an operation over an inline val), and purity elsewhere.
Fixes #22661 parent 7032915 commit 6df2c6e
File tree
6 files changed
+41
-26
lines changed- compiler/src/dotty/tools/dotc
- ast
- transform
- typer
- tests
- pos/java-annot
- run
6 files changed
+41
-26
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
577 | 577 | | |
578 | 578 | | |
579 | 579 | | |
580 | | - | |
581 | | - | |
582 | | - | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
583 | 601 | | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
594 | | - | |
595 | 602 | | |
596 | 603 | | |
597 | 604 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
113 | 118 | | |
114 | 119 | | |
115 | 120 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1694 | 1694 | | |
1695 | 1695 | | |
1696 | 1696 | | |
1697 | | - | |
1698 | | - | |
1699 | | - | |
1700 | | - | |
1701 | | - | |
1702 | 1697 | | |
1703 | 1698 | | |
1704 | 1699 | | |
| |||
1732 | 1727 | | |
1733 | 1728 | | |
1734 | 1729 | | |
1735 | | - | |
| 1730 | + | |
1736 | 1731 | | |
1737 | 1732 | | |
1738 | 1733 | | |
| |||
1743 | 1738 | | |
1744 | 1739 | | |
1745 | 1740 | | |
1746 | | - | |
| 1741 | + | |
1747 | 1742 | | |
1748 | 1743 | | |
1749 | 1744 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
5 | 8 | | |
6 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
7 | 12 | | |
8 | 13 | | |
0 commit comments