summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/BCodeAsmCommon.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/BCodeAsmCommon.scala b/src/compiler/scala/tools/nsc/backend/jvm/BCodeAsmCommon.scala
index 90d2fcf4dc..09d78fdf41 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/BCodeAsmCommon.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/BCodeAsmCommon.scala
@@ -128,7 +128,11 @@ final class BCodeAsmCommon[G <: Global](val global: G) {
assert(classSym.isClass, classSym)
def enclosingMethod(sym: Symbol): Option[Symbol] = {
if (sym.isClass || sym == NoSymbol) None
- else if (sym.isMethod) Some(sym)
+ else if (sym.isMethod) {
+ // SI-9124, some trait methods don't exist in the generated interface. see comment in BTypes.
+ if (sym.owner.isTrait && sym.isImplOnly) None
+ else Some(sym)
+ }
else enclosingMethod(nextEnclosing(sym))
}
enclosingMethod(nextEnclosing(classSym))