Skip to content

Commit 454bb6e

Browse files
committed
Space: make code pass -Yexplicit-nulls
1 parent 0c83123 commit 454bb6e

File tree

1 file changed

+16
-8
lines changed
  • compiler/src/dotty/tools/dotc/transform/patmat

1 file changed

+16
-8
lines changed

compiler/src/dotty/tools/dotc/transform/patmat/Space.scala

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,15 @@ sealed trait Space:
6767
isSubspaceCache.getOrElseUpdate(b, computeIsSubspace(this, b))
6868
}
6969

70-
private var mySimplify: Space = _
70+
private var mySimplify: Space | Null = _
7171

7272
def simplify(using Context): Space =
73-
if mySimplify == null then mySimplify = SpaceEngine.computeSimplify(this)
74-
mySimplify
73+
val simplify = mySimplify
74+
if simplify == null then
75+
val simplify = SpaceEngine.computeSimplify(this)
76+
mySimplify = simplify
77+
simplify
78+
else simplify
7579
end Space
7680

7781
/** Empty space */
@@ -84,15 +88,19 @@ case object Empty extends Space
8488
*
8589
*/
8690
case class Typ(tp: Type, decomposed: Boolean = true) extends Space:
87-
private var myDecompose: List[Typ] = _
91+
private var myDecompose: List[Typ] | Null = _
8892

8993
def canDecompose(using Context): Boolean = decompose != SpaceEngine.ListOfTypNoType
9094

9195
def decompose(using Context): List[Typ] =
92-
if myDecompose == null then myDecompose = tp match
93-
case SpaceEngine.Parts(parts) => parts.map(Typ(_, decomposed = true))
94-
case _ => SpaceEngine.ListOfTypNoType
95-
myDecompose
96+
val decompose = myDecompose
97+
if decompose == null then
98+
val decompose = tp match
99+
case SpaceEngine.Parts(parts) => parts.map(Typ(_, decomposed = true))
100+
case _ => SpaceEngine.ListOfTypNoType
101+
myDecompose = decompose
102+
decompose
103+
else decompose
96104
end Typ
97105

98106
/** Space representing an extractor pattern */

0 commit comments

Comments
 (0)