@@ -29,6 +29,7 @@ import scala.collection.mutable
2929import scala .annotation .tailrec
3030import scala .annotation .constructorOnly
3131import dotty .tools .dotc .core .Flags .AbstractOrTrait
32+ import Decorators .*
3233
3334/** Check initialization safety of static objects
3435 *
@@ -68,11 +69,21 @@ import dotty.tools.dotc.core.Flags.AbstractOrTrait
6869 *
6970 */
7071class Objects (using Context @ constructorOnly):
71- val immutableHashSetBuider : Symbol = requiredClass(" scala.collection.immutable.HashSetBuilder " )
72+ val immutableHashSetNode : Symbol = requiredClass(" scala.collection.immutable.SetNode " )
7273 // TODO: this should really be an annotation on the rhs of the field initializer rather than the field itself.
73- val HashSetBuilder_rootNode : Symbol = immutableHashSetBuider.requiredValue(" rootNode" )
74-
75- val whiteList = Set (HashSetBuilder_rootNode )
74+ val SetNode_EmptySetNode : Symbol = Denotations .staticRef(" scala.collection.immutable.SetNode.EmptySetNode" .toTermName).symbol
75+ val immutableHashSet : Symbol = requiredModule(" scala.collection.immutable.HashSet" )
76+ val HashSet_EmptySet : Symbol = Denotations .staticRef(" scala.collection.immutable.HashSet.EmptySet" .toTermName).symbol
77+ val immutableVector : Symbol = requiredModule(" scala.collection.immutable.Vector" )
78+ val Vector_EmptyIterator : Symbol = immutableVector.requiredValue(" emptyIterator" )
79+ val immutableMapNode : Symbol = requiredModule(" scala.collection.immutable.MapNode" )
80+ val MapNode_EmptyMapNode : Symbol = immutableMapNode.requiredValue(" EmptyMapNode" )
81+ val immutableHashMap : Symbol = requiredModule(" scala.collection.immutable.HashMap" )
82+ val HashMap_EmptyMap : Symbol = immutableHashMap.requiredValue(" EmptyMap" )
83+ val immutableLazyList : Symbol = requiredModule(" scala.collection.immutable.LazyList" )
84+ val LazyList_empty : Symbol = immutableLazyList.requiredValue(" _empty" )
85+
86+ val whiteList : Set [Symbol ] = Set (SetNode_EmptySetNode , HashSet_EmptySet , Vector_EmptyIterator , MapNode_EmptyMapNode , HashMap_EmptyMap , LazyList_empty )
7687
7788 // ----------------------------- abstract domain -----------------------------
7889
0 commit comments