@@ -1084,17 +1084,22 @@ class Definitions {
10841084 )
10851085 private val compiletimePackageBooleanTypes : Set [Name ] = Set (tpnme.Not , tpnme.Xor , tpnme.And , tpnme.Or )
10861086 private val compiletimePackageStringTypes : Set [Name ] = Set (tpnme.Plus )
1087-
1088- final def isCompiletimeAppliedType (sym : Symbol )(using Context ): Boolean = {
1089- def isOpsPackageObjectAppliedType : Boolean =
1090- sym.owner == CompiletimeOpsPackageObjectAny .moduleClass && compiletimePackageAnyTypes.contains(sym.name) ||
1091- sym.owner == CompiletimeOpsPackageObjectInt .moduleClass && compiletimePackageIntTypes.contains(sym.name) ||
1092- sym.owner == CompiletimeOpsPackageObjectBoolean .moduleClass && compiletimePackageBooleanTypes.contains(sym.name) ||
1093- sym.owner == CompiletimeOpsPackageObjectString .moduleClass && compiletimePackageStringTypes.contains(sym.name)
1094-
1095- sym.isType && (isCompiletime_S(sym) || isOpsPackageObjectAppliedType)
1096- }
1097-
1087+ private val compiletimePackageOpTypes : Set [Name ] =
1088+ Set (tpnme.S )
1089+ ++ compiletimePackageAnyTypes
1090+ ++ compiletimePackageIntTypes
1091+ ++ compiletimePackageBooleanTypes
1092+ ++ compiletimePackageStringTypes
1093+
1094+ final def isCompiletimeAppliedType (sym : Symbol )(using Context ): Boolean =
1095+ compiletimePackageOpTypes.contains(sym.name)
1096+ && (
1097+ sym.owner == CompiletimePackageObject .moduleClass && sym.name == tpnme.S
1098+ || sym.owner == CompiletimeOpsPackageObjectAny .moduleClass && compiletimePackageAnyTypes.contains(sym.name)
1099+ || sym.owner == CompiletimeOpsPackageObjectInt .moduleClass && compiletimePackageIntTypes.contains(sym.name)
1100+ || sym.owner == CompiletimeOpsPackageObjectBoolean .moduleClass && compiletimePackageBooleanTypes.contains(sym.name)
1101+ || sym.owner == CompiletimeOpsPackageObjectString .moduleClass && compiletimePackageStringTypes.contains(sym.name)
1102+ )
10981103
10991104 // ----- Symbol sets ---------------------------------------------------
11001105
@@ -1143,8 +1148,11 @@ class Definitions {
11431148 def PolyFunctionType = PolyFunctionClass .typeRef
11441149
11451150 /** If `cls` is a class in the scala package, its name, otherwise EmptyTypeName */
1146- def scalaClassName (cls : Symbol )(using Context ): TypeName =
1147- if (cls.isClass && cls.owner == ScalaPackageClass ) cls.asClass.name else EmptyTypeName
1151+ def scalaClassName (cls : Symbol )(using Context ): TypeName = cls.denot match
1152+ case clsd : ClassDenotation if clsd.owner eq ScalaPackageClass =>
1153+ clsd.name.asInstanceOf [TypeName ]
1154+ case _ =>
1155+ EmptyTypeName
11481156
11491157 /** If type `ref` refers to a class in the scala package, its name, otherwise EmptyTypeName */
11501158 def scalaClassName (ref : Type )(using Context ): TypeName = scalaClassName(ref.classSymbol)
0 commit comments