summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2017-01-12 14:46:30 -0800
committerAdriaan Moors <adriaan@lightbend.com>2017-01-24 16:35:55 -0800
commita75d3fdda25f228779ba7a6345571e6fce941197 (patch)
treec6c71e0070dc6dd11c44ac0a4136ceccbbe198ec /src/reflect
parentdc7ff5dd8402ea9cc1109bf729035b82c1340a51 (diff)
downloadscala-a75d3fdda25f228779ba7a6345571e6fce941197.tar.gz
scala-a75d3fdda25f228779ba7a6345571e6fce941197.tar.bz2
scala-a75d3fdda25f228779ba7a6345571e6fce941197.zip
SI-1459 two bridges for impl of java generic vararg method
A Scala method that implements a generic, Java-defined varargs method, needs two bridges: - to convert the collections for the repeated parameters (VBRIDGE) - to bridge the generics gap (BRIDGE) Refchecks emits the varargs "bridges", and erasure takes care of the other gap. Because a VBRIDGE was also an ARTIFACT, it was wrongly considered inert with respect to erasure, because `OverridingPairs` by default excluded artifacts. Removed the artifact flag from those VBRIDGES, so that they qualify for a real bridge. It would also work to include VBRIDGE methods that are artifacts in BridgesCursor.
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/internal/Flags.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Flags.scala b/src/reflect/scala/reflect/internal/Flags.scala
index 754b96a9dd..64273f005f 100644
--- a/src/reflect/scala/reflect/internal/Flags.scala
+++ b/src/reflect/scala/reflect/internal/Flags.scala
@@ -164,7 +164,7 @@ class Flags extends ModifierFlags {
final val LOCKED = 1L << 39 // temporary flag to catch cyclic dependencies
final val SPECIALIZED = 1L << 40 // symbol is a generated specialized member
- final val VBRIDGE = 1L << 42 // symbol is a varargs bridge
+ final val VBRIDGE = 1L << 42 // symbol is a varargs bridge (but not a bridge at the bytecode level)
final val VARARGS = 1L << 43 // symbol is a Java-style varargs method
final val TRIEDCOOKING = 1L << 44 // `Cooking` has been tried on this symbol