Skip to content

Instantly share code, notes, and snippets.

@pedrofurla
Last active December 20, 2015 00:49
Show Gist options
  • Select an option

  • Save pedrofurla/6044137 to your computer and use it in GitHub Desktop.

Select an option

Save pedrofurla/6044137 to your computer and use it in GitHub Desktop.
This error occurs when trying to compile my source code with -Yrangepos. My source depends on Slick macro I will post the usage site below, links for the Slick source and the error.
My Source:
override def expr(n: Node, skipParens: Boolean = false) =
n match {
case Extract(n @ _*) =>
val datePart = n(1).asInstanceOf[LiteralNode].value.asInstanceOf[String]
b"""extract('${datePart}' from ${n(0)})"""
case _ => super.expr(n, skipParens)
}
The macro in question is "b".
StringContext and `macro`: https://github.com/slick/slick/blob/1.0/src/main/scala/scala/slick/util/MacroSupport.scala
The implementations:
https://github.com/slick/slick/blob/1.0/src/macro/scala/scala/slick/util/MacroSupportInterpolationImpl.scala.
The exception thrown during compilation:
[debug]
[debug] Initial source changes:
[debug] removed:Set()
[debug] added: Set(/Users/pedrofurla/dev/projects/slick-demo/experiments/src/main/scala/slickdemo/experiments/SlickSupport2.scala)
[debug] modified: Set()
[debug] Removed products: Set()
[debug] Modified external sources: Set()
[debug] Modified binary dependencies: Set()
[debug] Initial directly invalidated sources: Set(/Users/pedrofurla/dev/projects/slick-demo/experiments/src/main/scala/slickdemo/experiments/SlickSupport2.scala)
[debug]
[debug] Sources indirectly invalidated by:
[debug] product: Set()
[debug] binary dep: Set()
[debug] external source: Set()
[debug] Initially invalidated: Set(/Users/pedrofurla/dev/projects/slick-demo/experiments/src/main/scala/slickdemo/experiments/SlickSupport2.scala)
[debug] Recompiling all 1 sources: invalidated sources (1) exceeded 50.0% of all sources
[info] Compiling 1 Scala source to /Users/pedrofurla/dev/projects/slick-demo/experiments/target/scala-2.10/classes...
[debug] Running cached compiler 4e0175be, interfacing (CompilerInterface) with Scala compiler version 2.10.2
[debug] Calling Scala compiler with arguments (CompilerInterface):
[debug] -deprecation
[debug] -feature
[debug] -Yrangepos
[debug] -d
[debug] /Users/pedrofurla/dev/projects/slick-demo/experiments/target/scala-2.10/classes
[debug] -bootclasspath
[debug] /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/JObjC.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/classes:/Users/pedrofurla/.sbt/boot/scala-2.10.2/lib/scala-library.jar
[debug] -classpath
[debug] /Users/pedrofurla/dev/projects/slick-demo/experiments/target/scala-2.10/classes:/Users/pedrofurla/dev/projects/slick-demo/target/scala-2.10/classes:/Users/pedrofurla/dev/projects/slick-demo/macros/target/scala-2.10/classes:/Users/pedrofurla/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.2.jar:/Users/pedrofurla/.ivy2/cache/com.typesafe.slick/slick_2.10/jars/slick_2.10-1.0.1.jar:/Users/pedrofurla/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar:/Users/pedrofurla/.ivy2/cache/org.slf4j/slf4j-nop/jars/slf4j-nop-1.6.4.jar:/Users/pedrofurla/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.2.jar:/Users/pedrofurla/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.3.1.jar:/Users/pedrofurla/.ivy2/cache/com.h2database/h2/jars/h2-1.3.172.jar:/Users/pedrofurla/.ivy2/cache/mysql/mysql-connector-java/jars/mysql-connector-java-5.1.12.jar:/Users/pedrofurla/.ivy2/cache/org.xerial/sqlite-jdbc/jars/sqlite-jdbc-3.7.2.jar
[info] ======= Position error
[info] Synthetic tree [937] contains nonsynthetic tree [134]
[info] == Enclosing tree [937] of type Apply at [2183]SlickSupport2.scala
[info]
[info] [L 62 ] #937 [2183] Apply // Apply(method +=)
[info]
[info] == Enclosed tree [134] of type Ident at [2198:2206]SlickSupport2.scala
[info]
[info] [L 62 ] #134 [2198:2206] Ident // datePart}
[info]
[info]
[info] While validating #1563
[info] [L 1 ] #1563 [0:3341] PackageDef // experiments
[info]
[info] Children:
[info] [L 1 P# 1563] #44 [8:29] Select // experiments
[info] [L 3 P# 1563] #47 [31:53] Import // slickdemo.dal._
[info] [L 4 P# 1563] #51 [54:151] Import // scala.slick.driver.{BasicDriver, BasicStatementBuilderComponent, ExtendedDriver, H2Driver}
[info] [L 5 P# 1563] #54 [152:193] Import // scala.language.implicitConversions
[info] [L 6 P# 1563] #57 [194:219] Import // scala.slick.driver
[info] [L 14 P# 1563] #1562 [313:3341] ModuleDef // SlickSupport2 extends SlickSupport {
[info] =======
[error]
[error] while compiling: /Users/pedrofurla/dev/projects/slick-demo/experiments/src/main/scala/slickdemo/experiments/SlickSupport2.scala
[error] during phase: typer
[error] library version: version 2.10.2
[error] compiler version: version 2.10.2
[error] reconstructed args: -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/lib/JObjC.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home/jre/classes:/Users/pedrofurla/.sbt/boot/scala-2.10.2/lib/scala-library.jar -deprecation -Yrangepos -feature -d /Users/pedrofurla/dev/projects/slick-demo/experiments/target/scala-2.10/classes -classpath /Users/pedrofurla/dev/projects/slick-demo/experiments/target/scala-2.10/classes:/Users/pedrofurla/dev/projects/slick-demo/target/scala-2.10/classes:/Users/pedrofurla/dev/projects/slick-demo/macros/target/scala-2.10/classes:/Users/pedrofurla/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.10.2.jar:/Users/pedrofurla/.ivy2/cache/com.typesafe.slick/slick_2.10/jars/slick_2.10-1.0.1.jar:/Users/pedrofurla/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar:/Users/pedrofurla/.ivy2/cache/org.slf4j/slf4j-nop/jars/slf4j-nop-1.6.4.jar:/Users/pedrofurla/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.2.jar:/Users/pedrofurla/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.3.1.jar:/Users/pedrofurla/.ivy2/cache/com.h2database/h2/jars/h2-1.3.172.jar:/Users/pedrofurla/.ivy2/cache/mysql/mysql-connector-java/jars/mysql-connector-java-5.1.12.jar:/Users/pedrofurla/.ivy2/cache/org.xerial/sqlite-jdbc/jars/sqlite-jdbc-3.7.2.jar
[error]
[error] last tree to typer: Literal(Constant(()))
[error] symbol: null
[error] symbol definition: null
[error] tpe: Unit
[error] symbol owners:
[error] context owners: constructor DateColumnExtensionMethods -> object DateColumnExtensionMethods -> object SlickSupport2 -> package experiments
[error]
[error] == Enclosing template or block ==
[error]
[error] Apply( // def <init>(): Object in class Object, tree.tpe=Object
[error] DateColumnExtensionMethods.super."<init>" // def <init>(): Object in class Object, tree.tpe=()Object
[error] Nil
[error] )
[error]
[error] == Expanded type of tree ==
[error]
[error] TypeRef(TypeSymbol(final abstract class Unit extends AnyVal))
[error]
[error] uncaught exception during compilation: scala.tools.nsc.interactive.RangePositions$ValidateException
scala.tools.nsc.interactive.RangePositions$ValidateException: Synthetic tree [937] contains nonsynthetic tree [134]
at scala.tools.nsc.interactive.RangePositions$class.positionError$1(RangePositions.scala:201)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:218)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validate$1(RangePositions.scala:241)
at scala.tools.nsc.interactive.RangePositions$class.validatePositions(RangePositions.scala:246)
at xsbt.CachedCompiler0$$anon$1.validatePositions(CompilerInterface.scala:118)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:100)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:464)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:91)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:91)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:91)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553)
at scala.tools.nsc.Global$Run.compile(Global.scala:1662)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:90)
at xsbt.CachedCompiler0.run(CompilerInterface.scala:72)
at xsbt.CompilerInterface.run(CompilerInterface.scala:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:73)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:35)
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:29)
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:71)
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71)
at sbt.compiler.AggressiveCompile$$anonfun$4$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:71)
at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:101)
at sbt.compiler.AggressiveCompile$$anonfun$4.compileScala$1(AggressiveCompile.scala:70)
at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:88)
at sbt.compiler.AggressiveCompile$$anonfun$4.apply(AggressiveCompile.scala:60)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:24)
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:22)
at sbt.inc.Incremental$.cycle(Incremental.scala:45)
at sbt.inc.Incremental$.compile(Incremental.scala:29)
at sbt.inc.IncrementalCompile$.apply(Compile.scala:20)
at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:96)
at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:44)
at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:31)
at sbt.Compiler$.apply(Compiler.scala:79)
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:572)
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:572)
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578)
at sbt.Scoped$$anonfun$hf2$1.apply(Structure.scala:578)
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41)
at sbt.std.Transform$$anon$5.work(System.scala:71)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
at sbt.Execute.work(Execute.scala:238)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment