Updated manifests.check to reflect the new way 'void' is represented. git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@15053 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
This commit is contained in:
parent
a05f72a3fd
commit
7a54c6efcd
|
@ -528,7 +528,8 @@ abstract class CleanUp extends Transform {
|
|||
val tpe = c.typeValue
|
||||
atPos(tree.pos) {
|
||||
localTyper.typed {
|
||||
if (isValueClass(tpe.typeSymbol) && !forCLDC)
|
||||
if ((isValueClass(tpe.typeSymbol) || tpe.typeSymbol == definitions.UnitClass)
|
||||
&& !forCLDC)
|
||||
Select(gen.mkAttributedRef(javaBoxClassModule(tpe.typeSymbol)), "TYPE")
|
||||
else if (settings.target.value != "jvm-1.5" && !forMSIL)
|
||||
Apply(
|
||||
|
|
|
@ -875,6 +875,10 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
|
|||
case Match(selector, cases) =>
|
||||
Match(Typed(selector, TypeTree(selector.tpe)), cases)
|
||||
|
||||
case Literal(ct) if ct.tag == ClassTag
|
||||
&& ct.typeValue.typeSymbol != definitions.UnitClass =>
|
||||
copy.Literal(tree, Constant(erasure(ct.typeValue)))
|
||||
|
||||
case _ =>
|
||||
tree
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
x=(), m=java.lang.Void
|
||||
x=(), m=void
|
||||
x=true, m=boolean
|
||||
x=a, m=char
|
||||
x=1, m=int
|
||||
x=abc, m=java.lang.String
|
||||
x=List(()), m=scala.List[java.lang.Void]
|
||||
x=List(()), m=scala.List[void]
|
||||
x=List(true), m=scala.List[boolean]
|
||||
x=List(1), m=scala.List[int]
|
||||
x=List(abc), m=scala.List[java.lang.String]
|
||||
|
@ -11,7 +11,7 @@ x=[Z, m=[Z[boolean]
|
|||
x=[C, m=[C[char]
|
||||
x=[I, m=[I[int]
|
||||
x=Array(abc), m=[Ljava.lang.String;[java.lang.String]
|
||||
x=((),()), m=scala.Tuple2[java.lang.Void, java.lang.Void]
|
||||
x=((),()), m=scala.Tuple2[void, void]
|
||||
x=(true,false), m=scala.Tuple2[boolean, boolean]
|
||||
x=(1,2), m=scala.Tuple2[int, int]
|
||||
x=(abc,xyz), m=scala.Tuple2[java.lang.String, java.lang.String]
|
||||
|
|
|
@ -1 +1,22 @@
|
|||
SomeClass
|
||||
Value types:
|
||||
void
|
||||
boolean
|
||||
byte
|
||||
short
|
||||
char
|
||||
int
|
||||
long
|
||||
float
|
||||
double
|
||||
Class types
|
||||
class SomeClass
|
||||
class scala.List
|
||||
class scala.Tuple2
|
||||
Arrays:
|
||||
class [Lscala.runtime.BoxedUnit;
|
||||
class [I
|
||||
class [D
|
||||
class [Lscala.List;
|
||||
Functions:
|
||||
interface scala.Function2
|
||||
interface scala.Function1
|
||||
|
|
|
@ -3,6 +3,30 @@ class SomeClass
|
|||
object Test {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val cls: Predef.Class[SomeClass] = classOf[SomeClass]
|
||||
Console.println(cls.getName())
|
||||
println("Value types:")
|
||||
println(classOf[Unit])
|
||||
println(classOf[Boolean])
|
||||
println(classOf[Byte])
|
||||
println(classOf[Short])
|
||||
println(classOf[Char])
|
||||
println(classOf[Int])
|
||||
println(classOf[Long])
|
||||
println(classOf[Float])
|
||||
println(classOf[Double])
|
||||
|
||||
println("Class types")
|
||||
println(classOf[SomeClass])
|
||||
println(classOf[List[Array[Float]]])
|
||||
println(classOf[(String, Map[Int, String])])
|
||||
|
||||
println("Arrays:")
|
||||
println(classOf[Array[Unit]])
|
||||
println(classOf[Array[Int]])
|
||||
println(classOf[Array[Double]])
|
||||
println(classOf[Array[List[String]]])
|
||||
|
||||
println("Functions: ")
|
||||
println(classOf[(Int, Int) => Unit])
|
||||
println(classOf[Int => Boolean])
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue