@@ -246,6 +246,9 @@ class Definitions {
246
246
@ tu lazy val CompiletimeOpsPackage : Symbol = requiredPackage(" scala.compiletime.ops" )
247
247
@ tu lazy val CompiletimeOpsAnyModuleClass : Symbol = requiredModule(" scala.compiletime.ops.any" ).moduleClass
248
248
@ 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
249
252
@ tu lazy val CompiletimeOpsStringModuleClass : Symbol = requiredModule(" scala.compiletime.ops.string" ).moduleClass
250
253
@ tu lazy val CompiletimeOpsBooleanModuleClass : Symbol = requiredModule(" scala.compiletime.ops.boolean" ).moduleClass
251
254
@@ -1078,19 +1081,40 @@ class Definitions {
1078
1081
final def isCompiletime_S (sym : Symbol )(using Context ): Boolean =
1079
1082
sym.name == tpnme.S && sym.owner == CompiletimeOpsIntModuleClass
1080
1083
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 (
1083
1088
tpnme.Plus , tpnme.Minus , tpnme.Times , tpnme.Div , tpnme.Mod ,
1084
1089
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 ,
1086
1099
tpnme.Xor , tpnme.BitwiseAnd , tpnme.BitwiseOr , tpnme.ASR , tpnme.LSL , tpnme.LSR
1087
1100
)
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
+ )
1088
1107
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
+ )
1090
1111
private val compiletimePackageOpTypes : Set [Name ] =
1091
1112
Set (tpnme.S )
1092
1113
++ compiletimePackageAnyTypes
1093
1114
++ compiletimePackageIntTypes
1115
+ ++ compiletimePackageLongTypes
1116
+ ++ compiletimePackageFloatTypes
1117
+ ++ compiletimePackageDoubleTypes
1094
1118
++ compiletimePackageBooleanTypes
1095
1119
++ compiletimePackageStringTypes
1096
1120
@@ -1100,6 +1124,9 @@ class Definitions {
1100
1124
isCompiletime_S(sym)
1101
1125
|| sym.owner == CompiletimeOpsAnyModuleClass && compiletimePackageAnyTypes.contains(sym.name)
1102
1126
|| 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)
1103
1130
|| sym.owner == CompiletimeOpsBooleanModuleClass && compiletimePackageBooleanTypes.contains(sym.name)
1104
1131
|| sym.owner == CompiletimeOpsStringModuleClass && compiletimePackageStringTypes.contains(sym.name)
1105
1132
)
0 commit comments