diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-04-24 09:59:21 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-04-24 09:59:21 +0200 |
commit | 6927c1aa76c19c1232609adb53b17e008ea04030 (patch) | |
tree | 13a479296f8fc472714b688637878005de837ee7 /src/dotty/tools/backend/jvm/GenBCode.scala | |
parent | e3449e9fdbb3801eb07680e4938bc4c3c77ec3a8 (diff) | |
download | dotty-6927c1aa76c19c1232609adb53b17e008ea04030.tar.gz dotty-6927c1aa76c19c1232609adb53b17e008ea04030.tar.bz2 dotty-6927c1aa76c19c1232609adb53b17e008ea04030.zip |
Save TASTY in attribute of classfiles.
Diffstat (limited to 'src/dotty/tools/backend/jvm/GenBCode.scala')
-rw-r--r-- | src/dotty/tools/backend/jvm/GenBCode.scala | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/dotty/tools/backend/jvm/GenBCode.scala b/src/dotty/tools/backend/jvm/GenBCode.scala index a53e910ae..8312a72e7 100644 --- a/src/dotty/tools/backend/jvm/GenBCode.scala +++ b/src/dotty/tools/backend/jvm/GenBCode.scala @@ -6,7 +6,7 @@ import dotty.tools.dotc.ast.tpd import dotty.tools.dotc.core.Phases.Phase import scala.collection.mutable -import scala.tools.asm.{ClassVisitor, MethodVisitor, FieldVisitor} +import scala.tools.asm.{CustomAttr, ClassVisitor, MethodVisitor, FieldVisitor} import scala.tools.nsc.Settings import scala.tools.nsc.backend.jvm._ import dotty.tools.dotc @@ -27,6 +27,7 @@ import scala.tools.asm import scala.tools.asm.tree._ import dotty.tools.dotc.util.{Positions, DotClass} import tpd._ +import StdNames._ import scala.tools.nsc.backend.jvm.opt.LocalOpt @@ -174,6 +175,15 @@ class GenBCodePipeline(val entryPoints: List[Symbol], val int: DottyBackendInter val outF = if (needsOutFolder) getOutFolder(claszSymbol, pcb.thisName) else null; val plainC = pcb.cnode + if ((!claszSymbol.companionClass.exists) || !claszSymbol.is(Flags.Module)) { + // generate TASTY on class if it is there, or on module if it has no companion class + + val binary = ctx.compilationUnit.pickler.assembleParts() + val dataAttr = new CustomAttr(nme.DottyTASTYATTR.toString, binary) + plainC.visitAttribute(dataAttr) + } + + // -------------- bean info class, if needed -------------- val beanC = if (claszSymbol hasAnnotation int.BeanInfoAttr) { |