Skip to content

Commit ff3b6d1

Browse files
authored
Merge pull request #5917 from dotty-staging/fix-#5916
Fix #5916: Fix broken SemanticDB and add it to yml file for CI
2 parents ef55202 + 5046366 commit ff3b6d1

File tree

11 files changed

+24
-146
lines changed

11 files changed

+24
-146
lines changed

.drone.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pipeline:
3131
image: lampepfl/dotty:2019-02-06
3232
commands:
3333
- cp -R . /tmp/2/ && cd /tmp/2/
34-
- ./project/scripts/sbt ";dotty-bootstrapped/compile ;dotty-bootstrapped/test ;sjsSandbox/run"
34+
- ./project/scripts/sbt ";dotty-bootstrapped/compile ;dotty-bootstrapped/test; dotty-semanticdb/compile; dotty-semanticdb/test:compile;sjsSandbox/run"
3535
- ./project/scripts/bootstrapCmdTests
3636

3737
community_build:

compiler/src/dotty/tools/backend/jvm/AsmUtils.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package dotty.tools
22
package backend
33
package jvm
44

5-
import scala.tools.asm.tree.{AbstractInsnNode}
5+
import scala.tools.asm.tree.{AbstractInsnNode, ClassNode, MethodNode}
66
import java.io.PrintWriter
77
import scala.tools.asm.util.{TraceClassVisitor, TraceMethodVisitor, Textifier}
88
import scala.tools.asm.ClassReader
@@ -31,7 +31,7 @@ object AsmUtils {
3131
final val traceSerializedClassEnabled = false
3232
final val traceSerializedClassPattern = ""
3333

34-
def traceMethod(mnode: MethodNode1): Unit = {
34+
def traceMethod(mnode: MethodNode): Unit = {
3535
println(s"Bytecode for method ${mnode.name}")
3636
val p = new Textifier
3737
val tracer = new TraceMethodVisitor(p)
@@ -41,7 +41,7 @@ object AsmUtils {
4141
w.flush()
4242
}
4343

44-
def traceClass(cnode: ClassNode1): Unit = {
44+
def traceClass(cnode: ClassNode): Unit = {
4545
println(s"Bytecode for class ${cnode.name}")
4646
val w = new PrintWriter(System.out)
4747
cnode.accept(new TraceClassVisitor(w))
@@ -50,8 +50,8 @@ object AsmUtils {
5050

5151
def traceClass(bytes: Array[Byte]): Unit = traceClass(readClass(bytes))
5252

53-
def readClass(bytes: Array[Byte]): ClassNode1 = {
54-
val node = new ClassNode1()
53+
def readClass(bytes: Array[Byte]): ClassNode = {
54+
val node = new ClassNode()
5555
new ClassReader(bytes).accept(node, 0)
5656
node
5757
}

compiler/src/dotty/tools/backend/jvm/BCodeHelpers.scala

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package backend
33
package jvm
44

55
import scala.tools.asm
6-
import scala.tools.asm.ClassWriter
76
import scala.collection.mutable
87
import dotty.tools.io.AbstractFile
98

@@ -127,20 +126,6 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
127126
}
128127
}
129128

130-
/*
131-
* can-multi-thread
132-
*/
133-
def createJAttribute(name: String, b: Array[Byte], offset: Int, len: Int): asm.Attribute = {
134-
new asm.Attribute(name) {
135-
override def write(classWriter: ClassWriter, code: Array[Byte],
136-
codeLength: Int, maxStack: Int, maxLocals: Int): asm.ByteVector = {
137-
val byteVector = new asm.ByteVector(len)
138-
byteVector.putByteArray(b, offset, len)
139-
byteVector
140-
}
141-
}
142-
}
143-
144129
/*
145130
* Custom attribute (JVMS 4.7.1) "ScalaSig" used as marker only
146131
* i.e., the pickle is contained in a custom annotation, see:
@@ -166,6 +151,15 @@ trait BCodeHelpers extends BCodeIdiomatic with BytecodeWriters {
166151
vp
167152
}
168153

154+
/*
155+
* can-multi-thread
156+
*/
157+
def createJAttribute(name: String, b: Array[Byte], offset: Int, len: Int): asm.Attribute = {
158+
val dest = new Array[Byte](len)
159+
System.arraycopy(b, offset, dest, 0, len)
160+
new asm.CustomAttr(name, dest)
161+
}
162+
169163
/*
170164
* can-multi-thread
171165
*/

compiler/src/dotty/tools/backend/jvm/BCodeSkelBuilder.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ trait BCodeSkelBuilder extends BCodeHelpers {
5353
final val MaximumJvmParameters = 254
5454

5555
// current class
56-
var cnode: ClassNode1 = null
56+
var cnode: asm.tree.ClassNode = null
5757
var thisName: String = null // the internal name of the class being emitted
5858

5959
var claszSymbol: Symbol = null
@@ -88,7 +88,7 @@ trait BCodeSkelBuilder extends BCodeHelpers {
8888
isCZStaticModule = claszSymbol.isStaticModuleClass
8989
thisName = internalName(claszSymbol)
9090

91-
cnode = new ClassNode1()
91+
cnode = new asm.tree.ClassNode()
9292

9393
initJClass(cnode)
9494

@@ -245,7 +245,7 @@ trait BCodeSkelBuilder extends BCodeHelpers {
245245
} // end of method addClassFields()
246246

247247
// current method
248-
var mnode: MethodNode1 = null
248+
var mnode: asm.tree.MethodNode = null
249249
var jMethodName: String = null
250250
var isMethSymStaticCtor = false
251251
var returnType: BType = null
@@ -523,7 +523,7 @@ trait BCodeSkelBuilder extends BCodeHelpers {
523523
mdesc,
524524
jgensig,
525525
mkArrayS(thrownExceptions)
526-
).asInstanceOf[MethodNode1]
526+
).asInstanceOf[asm.tree.MethodNode]
527527

528528
// TODO param names: (m.params map (p => javaName(p.sym)))
529529

compiler/src/dotty/tools/backend/jvm/BytecodeWriters.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ trait BytecodeWriters {
8484
private def emitAsmp(jclassBytes: Array[Byte], asmpFile: dotty.tools.io.File): Unit = {
8585
val pw = asmpFile.printWriter()
8686
try {
87-
val cnode = new ClassNode1()
87+
val cnode = new asm.tree.ClassNode()
8888
val cr = new asm.ClassReader(jclassBytes)
8989
cr.accept(cnode, 0)
9090
val trace = new scala.tools.asm.util.TraceClassVisitor(new java.io.PrintWriter(new java.io.StringWriter()))

compiler/src/dotty/tools/backend/jvm/ClassNode1.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

compiler/src/dotty/tools/backend/jvm/GenBCode.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import dotty.tools.dotc.core.Phases.Phase
77

88
import scala.collection.mutable
99
import scala.collection.JavaConverters._
10+
import scala.tools.asm.CustomAttr
1011
import dotty.tools.dotc.transform.SymUtils._
1112
import dotty.tools.dotc.interfaces
1213
import dotty.tools.dotc.util.SourceFile
@@ -239,7 +240,7 @@ class GenBCodePipeline(val entryPoints: List[Symbol], val int: DottyBackendInter
239240
getFileForClassfile(outF, store.name, ".hasTasty")
240241
binary
241242
}
242-
val dataAttr = createJAttribute(nme.TASTYATTR.mangledString, tasty, 0, tasty.length)
243+
val dataAttr = new CustomAttr(nme.TASTYATTR.mangledString, tasty)
243244
store.visitAttribute(dataAttr)
244245
}
245246

compiler/src/dotty/tools/backend/jvm/LabelNode1.java

Lines changed: 0 additions & 31 deletions
This file was deleted.

compiler/src/dotty/tools/backend/jvm/MethodNode1.java

Lines changed: 0 additions & 47 deletions
This file was deleted.

project/Build.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ object Build {
409409

410410
// get libraries onboard
411411
libraryDependencies ++= Seq(
412-
"org.scala-lang.modules" % "scala-asm" % "7.0.0-scala-1", // used by the backend
412+
"org.scala-lang.modules" % "scala-asm" % "6.0.0-scala-1", // used by the backend
413413
// FIXME: Not needed, but should be on the compiler CP
414414
("org.scala-lang.modules" %% "scala-xml" % "1.1.0").withDottyCompat(scalaVersion.value),
415415
"org.scala-lang" % "scala-library" % scalacVersion % "test",

semanticdb/src/dotty/semanticdb/SemanticdbConsumer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,7 @@ class SemanticdbConsumer(sourceFilePath: java.nio.file.Path) extends TastyConsum
756756

757757
override def traverseTree(tree: Tree)(implicit ctx: Context): Unit = {
758758
tree match {
759-
case Import(path, selectors) =>
759+
case Import(_, path, selectors) =>
760760
val key = (tree.symbol.trueName, tree.pos.start)
761761
if (!packageDefinitions(key)) {
762762
packageDefinitions += key

0 commit comments

Comments
 (0)