summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2016-03-31 16:26:45 -0700
committerAdriaan Moors <adriaan.moors@typesafe.com>2016-03-31 16:26:45 -0700
commit96f230a0e9c254c45dc91c71b5929639e6add1f0 (patch)
tree8f4942f5bb5ed348424664367384543c5160d50b /src/reflect
parent5654ebddb63d078f9f79dcf84fbb8489030136f6 (diff)
parente4529ca2e0091ec137c791419ae08c8da8e0aecf (diff)
downloadscala-96f230a0e9c254c45dc91c71b5929639e6add1f0.tar.gz
scala-96f230a0e9c254c45dc91c71b5929639e6add1f0.tar.bz2
scala-96f230a0e9c254c45dc91c71b5929639e6add1f0.zip
Merge pull request #5059 from lrytz/t9702
SI-9702 Fix backend crash with classOf[T] annotation argument
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/transform/Erasure.scala5
-rw-r--r--src/reflect/scala/reflect/runtime/JavaMirrors.scala1
2 files changed, 4 insertions, 2 deletions
diff --git a/src/reflect/scala/reflect/internal/transform/Erasure.scala b/src/reflect/scala/reflect/internal/transform/Erasure.scala
index 32af6529ca..c069e2c198 100644
--- a/src/reflect/scala/reflect/internal/transform/Erasure.scala
+++ b/src/reflect/scala/reflect/internal/transform/Erasure.scala
@@ -112,8 +112,9 @@ trait Erasure {
protected def eraseDerivedValueClassRef(tref: TypeRef): Type = erasedValueClassArg(tref)
def apply(tp: Type): Type = tp match {
- case ConstantType(_) =>
- tp
+ case ConstantType(ct) =>
+ if (ct.tag == ClazzTag) ConstantType(Constant(apply(ct.typeValue)))
+ else tp
case st: ThisType if st.sym.isPackageClass =>
tp
case st: SubType =>
diff --git a/src/reflect/scala/reflect/runtime/JavaMirrors.scala b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
index 49799136de..bdcfcabdd5 100644
--- a/src/reflect/scala/reflect/runtime/JavaMirrors.scala
+++ b/src/reflect/scala/reflect/runtime/JavaMirrors.scala
@@ -1161,6 +1161,7 @@ private[scala] trait JavaMirrors extends internal.SymbolTable with api.JavaUnive
propagatePackageBoundary(jmeth.javaFlags, meth)
copyAnnotations(meth, jmeth)
if (jmeth.javaFlags.isVarargs) meth modifyInfo arrayToRepeated
+ if (jmeth.getDefaultValue != null) meth.addAnnotation(AnnotationDefaultAttr)
markAllCompleted(meth)
meth
}