File tree 2 files changed +15
-4
lines changed
src/compiler/scala/tools/nsc/backend/jvm
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) {
30
30
*/
31
31
def isAnonymousOrLocalClass (classSym : Symbol ): Boolean = {
32
32
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
37
37
}
38
38
39
39
/**
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