diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-09-09 08:25:47 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2010-09-09 08:25:47 +0000 |
commit | ec7cc94358fc73308b12a468d1671752fad439a0 (patch) | |
tree | a555cbbbc4e7a2aeaca9793da5894cb4d6e42940 | |
parent | 6dfcae30bfcdc93509755185f814c8e318a64012 (diff) | |
download | scala-ec7cc94358fc73308b12a468d1671752fad439a0.tar.gz scala-ec7cc94358fc73308b12a468d1671752fad439a0.tar.bz2 scala-ec7cc94358fc73308b12a468d1671752fad439a0.zip |
close #3791 according to jason's proposal.
long cycle (deprecate, remove, add with new behavior). I tried adding
Scaladoc for these members but failed for now, see my message in
internals.
-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) |