diff options
author | Adriaan Moors <adriaan@lightbend.com> | 2017-01-12 14:46:30 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan@lightbend.com> | 2017-01-24 16:35:55 -0800 |
commit | a75d3fdda25f228779ba7a6345571e6fce941197 (patch) | |
tree | c6c71e0070dc6dd11c44ac0a4136ceccbbe198ec /src/reflect | |
parent | dc7ff5dd8402ea9cc1109bf729035b82c1340a51 (diff) | |
download | scala-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.scala | 2 |
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 |