diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-05-18 12:57:49 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2016-05-18 14:30:16 +1000 |
commit | af972a5019d0c5e8f4be4363eeed590c8fb384c3 (patch) | |
tree | b82ce863b8a6596b1093f9485dff6463aa8024ec | |
parent | d3e10c0b0aa95408873072262f0d728b96cfd885 (diff) | |
download | scala-af972a5019d0c5e8f4be4363eeed590c8fb384c3.tar.gz scala-af972a5019d0c5e8f4be4363eeed590c8fb384c3.tar.bz2 scala-af972a5019d0c5e8f4be4363eeed590c8fb384c3.zip |
SI-8756 Fix generic signature for refinement of primitive
Java generic signature generation was making the wrong
assumption about how refinement types should erase to
Java generics.
This commit passes through the current value of `primitiveOk`,
rather than forcing it to `true`.
This flag is true when generating the signature for `f2`,
but false in `i2` (as we are in a type argument position).
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/Erasure.scala | 2 | ||||
-rw-r--r-- | test/files/run/t8756.check | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala index 0301e06c87..bc614dfc31 100644 --- a/src/compiler/scala/tools/nsc/transform/Erasure.scala +++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala @@ -344,7 +344,7 @@ abstract class Erasure extends AddInterfaces buf.toString case RefinedType(parents, decls) => - boxedSig(intersectionDominator(parents)) + jsig(intersectionDominator(parents), primitiveOK = primitiveOK) case ClassInfoType(parents, _, _) => superSig(parents) case AnnotatedType(_, atp) => diff --git a/test/files/run/t8756.check b/test/files/run/t8756.check index 89337543bd..9b9dcafe7d 100644 --- a/test/files/run/t8756.check +++ b/test/files/run/t8756.check @@ -1,5 +1,5 @@ public Bippy<java.lang.Object> Test.f1(long) -public Bippy<java.lang.Object> Test.f2(java.lang.Object) +public Bippy<java.lang.Object> Test.f2(long) public Bippy<java.lang.Object> Test.i1(Bippy<java.lang.Object>) public Bippy<java.lang.Object> Test.i2(Bippy<java.lang.Object>) public int Test.g1(long) |