diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Definitions.scala | 21 |
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) |