@@ -246,6 +246,9 @@ class Definitions {
246246 @ tu lazy val CompiletimeOpsPackage : Symbol = requiredPackage(" scala.compiletime.ops" )
247247 @ tu lazy val CompiletimeOpsAnyModuleClass : Symbol = requiredModule(" scala.compiletime.ops.any" ).moduleClass
248248 @ tu lazy val CompiletimeOpsIntModuleClass : Symbol = requiredModule(" scala.compiletime.ops.int" ).moduleClass
249+ @ tu lazy val CompiletimeOpsLongModuleClass : Symbol = requiredModule(" scala.compiletime.ops.long" ).moduleClass
250+ @ tu lazy val CompiletimeOpsFloatModuleClass : Symbol = requiredModule(" scala.compiletime.ops.float" ).moduleClass
251+ @ tu lazy val CompiletimeOpsDoubleModuleClass : Symbol = requiredModule(" scala.compiletime.ops.double" ).moduleClass
249252 @ tu lazy val CompiletimeOpsStringModuleClass : Symbol = requiredModule(" scala.compiletime.ops.string" ).moduleClass
250253 @ tu lazy val CompiletimeOpsBooleanModuleClass : Symbol = requiredModule(" scala.compiletime.ops.boolean" ).moduleClass
251254
@@ -1078,19 +1081,40 @@ class Definitions {
10781081 final def isCompiletime_S (sym : Symbol )(using Context ): Boolean =
10791082 sym.name == tpnme.S && sym.owner == CompiletimeOpsIntModuleClass
10801083
1081- private val compiletimePackageAnyTypes : Set [Name ] = Set (tpnme.Equals , tpnme.NotEquals )
1082- private val compiletimePackageIntTypes : Set [Name ] = Set (
1084+ private val compiletimePackageAnyTypes : Set [Name ] = Set (
1085+ tpnme.Equals , tpnme.NotEquals , tpnme.IsConst , tpnme.ToString
1086+ )
1087+ private val compiletimePackageNumericTypes : Set [Name ] = Set (
10831088 tpnme.Plus , tpnme.Minus , tpnme.Times , tpnme.Div , tpnme.Mod ,
10841089 tpnme.Lt , tpnme.Gt , tpnme.Ge , tpnme.Le ,
1085- tpnme.Abs , tpnme.Negate , tpnme.Min , tpnme.Max , tpnme.ToString ,
1090+ tpnme.Abs , tpnme.Negate , tpnme.Min , tpnme.Max
1091+ )
1092+ private val compiletimePackageIntTypes : Set [Name ] = compiletimePackageNumericTypes ++ Set [Name ](
1093+ tpnme.ToString , // ToString is moved to ops.any and deprecated for ops.int
1094+ tpnme.NumberOfLeadingZeros , tpnme.ToLong , tpnme.ToFloat , tpnme.ToDouble ,
1095+ tpnme.Xor , tpnme.BitwiseAnd , tpnme.BitwiseOr , tpnme.ASR , tpnme.LSL , tpnme.LSR
1096+ )
1097+ private val compiletimePackageLongTypes : Set [Name ] = compiletimePackageNumericTypes ++ Set [Name ](
1098+ tpnme.NumberOfLeadingZeros , tpnme.ToInt , tpnme.ToFloat , tpnme.ToDouble ,
10861099 tpnme.Xor , tpnme.BitwiseAnd , tpnme.BitwiseOr , tpnme.ASR , tpnme.LSL , tpnme.LSR
10871100 )
1101+ private val compiletimePackageFloatTypes : Set [Name ] = compiletimePackageNumericTypes ++ Set [Name ](
1102+ tpnme.ToInt , tpnme.ToLong , tpnme.ToDouble
1103+ )
1104+ private val compiletimePackageDoubleTypes : Set [Name ] = compiletimePackageNumericTypes ++ Set [Name ](
1105+ tpnme.ToInt , tpnme.ToLong , tpnme.ToFloat
1106+ )
10881107 private val compiletimePackageBooleanTypes : Set [Name ] = Set (tpnme.Not , tpnme.Xor , tpnme.And , tpnme.Or )
1089- private val compiletimePackageStringTypes : Set [Name ] = Set (tpnme.Plus )
1108+ private val compiletimePackageStringTypes : Set [Name ] = Set (
1109+ tpnme.Plus , tpnme.Length , tpnme.Substring , tpnme.Matches
1110+ )
10901111 private val compiletimePackageOpTypes : Set [Name ] =
10911112 Set (tpnme.S )
10921113 ++ compiletimePackageAnyTypes
10931114 ++ compiletimePackageIntTypes
1115+ ++ compiletimePackageLongTypes
1116+ ++ compiletimePackageFloatTypes
1117+ ++ compiletimePackageDoubleTypes
10941118 ++ compiletimePackageBooleanTypes
10951119 ++ compiletimePackageStringTypes
10961120
@@ -1100,6 +1124,9 @@ class Definitions {
11001124 isCompiletime_S(sym)
11011125 || sym.owner == CompiletimeOpsAnyModuleClass && compiletimePackageAnyTypes.contains(sym.name)
11021126 || sym.owner == CompiletimeOpsIntModuleClass && compiletimePackageIntTypes.contains(sym.name)
1127+ || sym.owner == CompiletimeOpsLongModuleClass && compiletimePackageLongTypes.contains(sym.name)
1128+ || sym.owner == CompiletimeOpsFloatModuleClass && compiletimePackageFloatTypes.contains(sym.name)
1129+ || sym.owner == CompiletimeOpsDoubleModuleClass && compiletimePackageDoubleTypes.contains(sym.name)
11031130 || sym.owner == CompiletimeOpsBooleanModuleClass && compiletimePackageBooleanTypes.contains(sym.name)
11041131 || sym.owner == CompiletimeOpsStringModuleClass && compiletimePackageStringTypes.contains(sym.name)
11051132 )
0 commit comments