package dotty.tools.backend.jvm import dotty.tools.dotc.ast.Trees.Thicket import dotty.tools.dotc.ast.{Trees, tpd} import dotty.tools.dotc.core.Contexts.Context import dotty.tools.dotc.core.Types import dotty.tools.dotc.transform.TreeTransforms.{TransformerInfo, TreeTransform, MiniPhase, MiniPhaseTransform} import dotty.tools.dotc import dotty.tools.dotc.backend.jvm.DottyPrimitives import dotty.tools.dotc.core.Flags.FlagSet import dotty.tools.dotc.transform.Erasure import dotty.tools.dotc.transform.SymUtils._ import java.io.{File => JFile} import scala.collection.generic.Clearable import scala.collection.mutable import scala.collection.mutable.{ListBuffer, ArrayBuffer} import scala.reflect.ClassTag import scala.reflect.io.{Directory, PlainDirectory, AbstractFile} import scala.tools.asm.{ClassVisitor, FieldVisitor, MethodVisitor} import scala.tools.nsc.backend.jvm.{BCodeHelpers, BackendInterface} import dotty.tools.dotc.core._ import Periods._ import SymDenotations._ import Contexts._ import Types._ import Symbols._ import Denotations._ import Phases._ import java.lang.AssertionError import dotty.tools.dotc.util.Positions.Position import Decorators._ import tpd._ import Flags._ import StdNames.nme /** * Verifies that each Label DefDef has only a single address to jump back and * reorders them such that they are not nested and this address is a * fall-through address for the JVM. * * ```scala *