summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala6
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVMASM.scala4
-rw-r--r--test/files/pos/t7847/A.scala5
-rw-r--r--test/files/pos/t7847/B.java10
4 files changed, 18 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala b/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala
index 182209dfe6..eff7d3211e 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/BCodeHelpers.scala
@@ -866,11 +866,7 @@ abstract class BCodeHelpers extends BCodeTypes with BytecodeWriters {
// a plain class lacking companion module, for details see `isCandidateForForwarders`).
// -----------------------------------------------------------------------------------------
- val ExcludedForwarderFlags = {
- import symtab.Flags._
- // Should include DEFERRED but this breaks findMember.
- ( CASE | SPECIALIZED | LIFTED | PROTECTED | STATIC | EXPANDEDNAME | BridgeAndPrivateFlags | MACRO )
- }
+ val ExcludedForwarderFlags = genASM.ExcludedForwarderFlags
/* Adds a @remote annotation, actual use unknown.
*
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVMASM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVMASM.scala
index 2c3bf26958..01c4ff5a52 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVMASM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVMASM.scala
@@ -18,10 +18,10 @@ trait GenJVMASM {
import icodes._
import definitions._
- protected val ExcludedForwarderFlags = {
+ val ExcludedForwarderFlags = {
import Flags._
// Should include DEFERRED but this breaks findMember.
- ( CASE | SPECIALIZED | LIFTED | PROTECTED | STATIC | EXPANDEDNAME | BridgeAndPrivateFlags | MACRO )
+ ( SPECIALIZED | LIFTED | PROTECTED | STATIC | EXPANDEDNAME | BridgeAndPrivateFlags | MACRO )
}
protected def isJavaEntryPoint(icls: IClass) = {
diff --git a/test/files/pos/t7847/A.scala b/test/files/pos/t7847/A.scala
new file mode 100644
index 0000000000..b6cce6ee79
--- /dev/null
+++ b/test/files/pos/t7847/A.scala
@@ -0,0 +1,5 @@
+case class Blah(a: Int)
+
+object Blah {
+ def apply2(a: Int) = apply(a)
+}
diff --git a/test/files/pos/t7847/B.java b/test/files/pos/t7847/B.java
new file mode 100644
index 0000000000..c214f2dcab
--- /dev/null
+++ b/test/files/pos/t7847/B.java
@@ -0,0 +1,10 @@
+public final class B {
+ void blah() {
+ Blah x = Blah.apply2(1);
+ Blah y = Blah.apply(1);
+ Blah z = Blah$.MODULE$.apply(1);
+
+ scala.Option un1 = Blah.unapply(null);
+ scala.Option un2 = Blah$.MODULE$.unapply(null);
+ }
+}