@@ -8,6 +8,7 @@ import dotty.tools.dotc.transform.{Erasure, GenericSignatures}
8
8
import dotty .tools .dotc .transform .SymUtils ._
9
9
import java .io .{File => _ }
10
10
11
+ import scala .annotation .threadUnsafe
11
12
import scala .collection .generic .Clearable
12
13
import scala .collection .mutable
13
14
import scala .reflect .ClassTag
@@ -104,8 +105,8 @@ class DottyBackendInterface(outputDirectory: AbstractFile, val superCallsMap: Ma
104
105
val nme_EQEQ_LOCAL_VAR : Name = StdNames .nme.EQEQ_LOCAL_VAR
105
106
106
107
// require LambdaMetafactory: scalac uses getClassIfDefined, but we need those always.
107
- override lazy val LambdaMetaFactory : ClassSymbol = ctx.requiredClass(" java.lang.invoke.LambdaMetafactory" )
108
- override lazy val MethodHandle : ClassSymbol = ctx.requiredClass(" java.lang.invoke.MethodHandle" )
108
+ @ threadUnsafe override lazy val LambdaMetaFactory : ClassSymbol = ctx.requiredClass(" java.lang.invoke.LambdaMetafactory" )
109
+ @ threadUnsafe override lazy val MethodHandle : ClassSymbol = ctx.requiredClass(" java.lang.invoke.MethodHandle" )
109
110
110
111
val nme_valueOf : Name = StdNames .nme.valueOf
111
112
val nme_apply : TermName = StdNames .nme.apply
@@ -145,13 +146,13 @@ class DottyBackendInterface(outputDirectory: AbstractFile, val superCallsMap: Ma
145
146
val PartialFunctionClass : Symbol = defn.PartialFunctionClass
146
147
val AbstractPartialFunctionClass : Symbol = defn.AbstractPartialFunctionClass
147
148
val String_valueOf : Symbol = defn.String_valueOf_Object
148
- lazy val Predef_classOf : Symbol = defn.ScalaPredefModule .requiredMethod(nme.classOf )
149
+ @ threadUnsafe lazy val Predef_classOf : Symbol = defn.ScalaPredefModule .requiredMethod(nme.classOf )
149
150
150
- lazy val AnnotationRetentionAttr : ClassSymbol = ctx.requiredClass(" java.lang.annotation.Retention" )
151
- lazy val AnnotationRetentionSourceAttr : TermSymbol = ctx.requiredClass(" java.lang.annotation.RetentionPolicy" ).linkedClass.requiredValue(" SOURCE" )
152
- lazy val AnnotationRetentionClassAttr : TermSymbol = ctx.requiredClass(" java.lang.annotation.RetentionPolicy" ).linkedClass.requiredValue(" CLASS" )
153
- lazy val AnnotationRetentionRuntimeAttr : TermSymbol = ctx.requiredClass(" java.lang.annotation.RetentionPolicy" ).linkedClass.requiredValue(" RUNTIME" )
154
- lazy val JavaAnnotationClass : ClassSymbol = ctx.requiredClass(" java.lang.annotation.Annotation" )
151
+ @ threadUnsafe lazy val AnnotationRetentionAttr : ClassSymbol = ctx.requiredClass(" java.lang.annotation.Retention" )
152
+ @ threadUnsafe lazy val AnnotationRetentionSourceAttr : TermSymbol = ctx.requiredClass(" java.lang.annotation.RetentionPolicy" ).linkedClass.requiredValue(" SOURCE" )
153
+ @ threadUnsafe lazy val AnnotationRetentionClassAttr : TermSymbol = ctx.requiredClass(" java.lang.annotation.RetentionPolicy" ).linkedClass.requiredValue(" CLASS" )
154
+ @ threadUnsafe lazy val AnnotationRetentionRuntimeAttr : TermSymbol = ctx.requiredClass(" java.lang.annotation.RetentionPolicy" ).linkedClass.requiredValue(" RUNTIME" )
155
+ @ threadUnsafe lazy val JavaAnnotationClass : ClassSymbol = ctx.requiredClass(" java.lang.annotation.Annotation" )
155
156
156
157
def boxMethods : Map [Symbol , Symbol ] = defn.ScalaValueClasses ().map{x => // @darkdimius Are you sure this should be a def?
157
158
(x, Erasure .Boxing .boxMethod(x.asClass))
0 commit comments