@@ -2,12 +2,16 @@ package dotty.tools
2
2
package backend
3
3
package jvm
4
4
5
+ import dotty .tools .dotc .core .Flags ._
6
+ import dotty .tools .dotc .core .Symbols ._
7
+
5
8
/**
6
9
* This trait contains code shared between GenBCode and GenASM that depends on types defined in
7
10
* the compiler cake (Global).
8
11
*/
9
- final class BCodeAsmCommon [I <: BackendInterface ](val interface : I ) {
12
+ final class BCodeAsmCommon [I <: DottyBackendInterface ](val interface : I ) {
10
13
import interface ._
14
+ import DottyBackendInterface .symExtensions
11
15
12
16
/**
13
17
* True if `classSym` is an anonymous class or a local class. I.e., false if `classSym` is a
@@ -53,7 +57,7 @@ final class BCodeAsmCommon[I <: BackendInterface](val interface: I) {
53
57
assert(classSym.isClass, classSym)
54
58
def enclosingMethod (sym : Symbol ): Option [Symbol ] = {
55
59
if (sym.isClass || sym == NoSymbol ) None
56
- else if (sym.isMethod ) Some (sym)
60
+ else if (sym.is( Method ) ) Some (sym)
57
61
else enclosingMethod(sym.originalOwner.originalLexicallyEnclosingClass)
58
62
}
59
63
enclosingMethod(classSym.originalOwner.originalLexicallyEnclosingClass)
@@ -85,10 +89,10 @@ final class BCodeAsmCommon[I <: BackendInterface](val interface: I) {
85
89
def enclosingMethodAttribute (classSym : Symbol , classDesc : Symbol => String , methodDesc : Symbol => String ): Option [EnclosingMethodEntry ] = {
86
90
if (isAnonymousOrLocalClass(classSym)) {
87
91
val methodOpt = enclosingMethodForEnclosingMethodAttribute(classSym)
88
- debuglog(s " enclosing method for $classSym is $methodOpt (in ${methodOpt.map(_.enclClass )}) " )
92
+ ctx. debuglog(s " enclosing method for $classSym is $methodOpt (in ${methodOpt.map(_.enclosingClass )}) " )
89
93
Some (EnclosingMethodEntry (
90
94
classDesc(enclosingClassForEnclosingMethodAttribute(classSym)),
91
- methodOpt.map(_.javaSimpleName.toString ).orNull,
95
+ methodOpt.map(_.javaSimpleName).orNull,
92
96
methodOpt.map(methodDesc).orNull))
93
97
} else {
94
98
None
0 commit comments