diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2016-03-31 16:26:45 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2016-03-31 16:26:45 -0700 |
commit | 96f230a0e9c254c45dc91c71b5929639e6add1f0 (patch) | |
tree | 8f4942f5bb5ed348424664367384543c5160d50b /src/reflect | |
parent | 5654ebddb63d078f9f79dcf84fbb8489030136f6 (diff) | |
parent | e4529ca2e0091ec137c791419ae08c8da8e0aecf (diff) | |
download | scala-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.scala | 5 | ||||
-rw-r--r-- | src/reflect/scala/reflect/runtime/JavaMirrors.scala | 1 |
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 } |