File tree Expand file tree Collapse file tree 2 files changed +15
-4
lines changed
src/compiler/scala/tools/nsc/backend/jvm Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Original file line number Diff line number Diff line change @@ -30,10 +30,10 @@ final class BCodeAsmCommon[G <: Global](val global: G) {
3030 */
3131 def isAnonymousOrLocalClass (classSym : Symbol ): Boolean = {
3232 assert(classSym.isClass, s " not a class: $classSym" )
33- val res = (classSym.isAnonymousClass || ! classSym.originalOwner.isClass)
34- // lambda classes are always top-level classes.
35- if (res) assert( ! classSym. isDelambdafyFunction)
36- res
33+ // Here used to be an `assert( !classSym.isDelambdafyFunction)`: delambdafy lambda classes are
34+ // always top-level. However, SI-8900 shows an example where the weak name-based implementation
35+ // of isDelambdafyFunction failed (for a function declared in a package named "lambda").
36+ classSym.isAnonymousClass || ! classSym.originalOwner.isClass
3737 }
3838
3939 /**
Original file line number Diff line number Diff line change 1+ package foo
2+ package lambdaking
3+
4+ class Test {
5+ def byname (b : => Any ) = ???
6+ def foo : Any = {
7+ def bar : Any = {
8+ byname(bar)
9+ }
10+ }
11+ }
You can’t perform that action at this time.
0 commit comments