We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent e817eb1 commit ca7553eCopy full SHA for ca7553e
tests/init-global/warn/Color.scala
@@ -4,7 +4,25 @@ enum Color:
4
enum Player:
5
case Black, White
6
7
+ // Explanation: See the desugaring below
8
val color: Color =
9
if this == Player.Black // warn
10
then Color.Black
11
else Color.White
12
+
13
+// From the desugaring of Player, we can see the field `Player.Black` is not yet
14
+// initialized during evaluation of the first `new Player`:
15
+//
16
+// class Player:
17
+// val color: Color =
18
+// if this == Player.Black ...
19
20
+// object Player:
21
+// val Black: Player = new Player // <--- problem
22
+// val White: Player = new Player
23
24
25
+// The complex desugaring makes it difficult to see the initialization
26
+// semantics and it is prone to make such hard-to-spot mistakes.
27
28
+// Note: The desugaring above is simplified for presentation.
0 commit comments