summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index 534cfb566a..a7fbcd7019 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -714,10 +714,15 @@ trait Definitions extends reflect.generic.StandardDefinitions {
List(ByteClass, ShortClass, CharClass, IntClass, LongClass) foreach (x => initValueClass(x, true))
List(FloatClass, DoubleClass) foreach (x => initValueClass(x, false))
- def addModuleMethod(clazz: Symbol, name: Name, value: Any) {
+ def addModuleMethod(clazz: Symbol, name: Name, value: Any) = {
val owner = clazz.linkedClassOfClass
newParameterlessMethod(owner, name, ConstantType(Constant(value)))
}
+ def addDeprecatedModuleMethod(clazz: Symbol, name: Name, value: Any, msg: String) = {
+ val m = addModuleMethod(clazz, name, value)
+ val arg = Literal(Constant(msg))
+ m.addAnnotation(AnnotationInfo(DeprecatedAttr.tpe, List(arg), List()))
+ }
addModuleMethod(ByteClass, "MinValue", java.lang.Byte.MIN_VALUE)
addModuleMethod(ByteClass, "MaxValue", java.lang.Byte.MAX_VALUE)
addModuleMethod(ShortClass, "MinValue", java.lang.Short.MIN_VALUE)
@@ -729,16 +734,22 @@ trait Definitions extends reflect.generic.StandardDefinitions {
addModuleMethod(LongClass, "MinValue", java.lang.Long.MIN_VALUE)
addModuleMethod(LongClass, "MaxValue", java.lang.Long.MAX_VALUE)
- addModuleMethod(FloatClass, "MinValue", -java.lang.Float.MAX_VALUE)
+ addDeprecatedModuleMethod(FloatClass, "MinValue", -java.lang.Float.MAX_VALUE, "use Float.MinNegativeValue instead")
+ addModuleMethod(FloatClass, "MinNegativeValue", -java.lang.Float.MAX_VALUE)
addModuleMethod(FloatClass, "MaxValue", java.lang.Float.MAX_VALUE)
- addModuleMethod(FloatClass, "Epsilon", java.lang.Float.MIN_VALUE)
+ addDeprecatedModuleMethod(FloatClass, "Epsilon", java.lang.Float.MIN_VALUE, "use Float.MinPositiveValue instead")
+ addModuleMethod(FloatClass, "MinPositiveValue", -java.lang.Float.MAX_VALUE)
addModuleMethod(FloatClass, "NaN", java.lang.Float.NaN)
addModuleMethod(FloatClass, "PositiveInfinity", java.lang.Float.POSITIVE_INFINITY)
addModuleMethod(FloatClass, "NegativeInfinity", java.lang.Float.NEGATIVE_INFINITY)
- addModuleMethod(DoubleClass, "MinValue", -java.lang.Double.MAX_VALUE)
+ addDeprecatedModuleMethod(DoubleClass, "MinValue", -java.lang.Double.MAX_VALUE, "use Double.MinNegativeValue instead")
+ addModuleMethod(DoubleClass, "MinNegativeValue", -java.lang.Double.MAX_VALUE)
addModuleMethod(DoubleClass, "MaxValue", java.lang.Double.MAX_VALUE)
- addModuleMethod(DoubleClass, "Epsilon", java.lang.Double.MIN_VALUE)
+ // see #3791. change cycle for `Epsilon`: 1. deprecate, 2. remove, 3. re-introduce as
+ // org.apache.commons.math.util.MathUtils.EPSILON (0x1.0p-53). not sure what to do for float.
+ addDeprecatedModuleMethod(DoubleClass, "Epsilon", java.lang.Double.MIN_VALUE, "use Double.MinPositiveValue instead")
+ addModuleMethod(DoubleClass, "MinPositiveValue", java.lang.Double.MIN_VALUE)
addModuleMethod(DoubleClass, "NaN", java.lang.Double.NaN)
addModuleMethod(DoubleClass, "PositiveInfinity", java.lang.Double.POSITIVE_INFINITY)
addModuleMethod(DoubleClass, "NegativeInfinity", java.lang.Double.NEGATIVE_INFINITY)