-
Notifications
You must be signed in to change notification settings - Fork 127
Closed
Description
In some cases (seemingly related to lambdas), Method.getGenericParameterTypes will return an array containing null Types, which are then passed into def defLike to cause crashes.
This commit has a self-contained repro: twitter/pants@aaa07c3 ... that crashes when compiled with zinc 1.0.0-rc3:
[error] ## Exception when compiling 1 sources to current/classes
[error] null
[error] sbt.internal.inc.ClassToAPI$.reference(ClassToAPI.scala:506)
[error] sbt.internal.inc.ClassToAPI$.parameter(ClassToAPI.scala:375)
[error] sbt.internal.inc.ClassToAPI$$anonfun$16.apply(ClassToAPI.scala:351)
[error] sbt.internal.inc.ClassToAPI$$anonfun$16.apply(ClassToAPI.scala:350)
[error] scala.runtime.Tuple3Zipped$$anonfun$map$extension$1.apply(Tuple3Zipped.scala:44)
[error] scala.runtime.Tuple3Zipped$$anonfun$map$extension$1.apply(Tuple3Zipped.scala:42)
[error] scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
[error] scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
[error] scala.runtime.Tuple3Zipped$.map$extension(Tuple3Zipped.scala:42)
[error] sbt.internal.inc.ClassToAPI$.defLike(ClassToAPI.scala:350)
[error] sbt.internal.inc.ClassToAPI$.methodToDef(ClassToAPI.scala:308)
[error] sbt.internal.inc.ClassToAPI$$anonfun$4.apply(ClassToAPI.scala:182)
[error] sbt.internal.inc.ClassToAPI$$anonfun$4.apply(ClassToAPI.scala:182)
[error] sbt.internal.inc.ClassToAPI$$anonfun$mergeMap$1.apply(ClassToAPI.scala:398)
[error] sbt.internal.inc.ClassToAPI$$anonfun$mergeMap$1.apply(ClassToAPI.scala:398)
[error] scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
[error] scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
[error] scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
[error] scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:35)
[error] scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
[error] scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
[error] sbt.internal.inc.ClassToAPI$.merge(ClassToAPI.scala:408)
[error] sbt.internal.inc.ClassToAPI$.mergeMap(ClassToAPI.scala:398)
[error] sbt.internal.inc.ClassToAPI$.structure(ClassToAPI.scala:182)
[error] sbt.internal.inc.ClassToAPI$.x$2$lzycompute$1(ClassToAPI.scala:133)
[error] sbt.internal.inc.ClassToAPI$.x$2$1(ClassToAPI.scala:133)
[error] sbt.internal.inc.ClassToAPI$.instance$lzycompute$1(ClassToAPI.scala:133)
[error] sbt.internal.inc.ClassToAPI$.sbt$internal$inc$ClassToAPI$$instance$1(ClassToAPI.scala:133)
[error] sbt.internal.inc.ClassToAPI$$anonfun$2.apply(ClassToAPI.scala:140)
[error] sbt.internal.inc.ClassToAPI$$anonfun$2.apply(ClassToAPI.scala:140)
[error] xsbti.api.SafeLazyProxy$$anon$1.get(SafeLazyProxy.scala:26)
[error] xsbti.api.SafeLazy$Impl.get(SafeLazy.java:58)
[error] sbt.internal.inc.ClassToAPI$$anonfun$process$2.apply(ClassToAPI.scala:29)
[error] sbt.internal.inc.ClassToAPI$$anonfun$process$2.apply(ClassToAPI.scala:29)
[error] scala.collection.immutable.List.foreach(List.scala:392)
[error] scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
[error] scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)
[error] sbt.internal.inc.ClassToAPI$.process(ClassToAPI.scala:29)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler.sbt$internal$inc$javac$AnalyzingJavaCompiler$$readAPI$1(AnalyzingJavaCompiler.scala:143)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler$$anonfun$compile$2$$anonfun$apply$mcV$sp$2$$anonfun$apply$4.apply(AnalyzingJavaCompiler.scala:161)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler$$anonfun$compile$2$$anonfun$apply$mcV$sp$2$$anonfun$apply$4.apply(AnalyzingJavaCompiler.scala:161)
[error] sbt.internal.inc.classfile.Analyze$$anonfun$apply$12.readInheritanceDependencies$1(Analyze.scala:134)
[error] sbt.internal.inc.classfile.Analyze$$anonfun$apply$12.apply(Analyze.scala:150)
[error] sbt.internal.inc.classfile.Analyze$$anonfun$apply$12.apply(Analyze.scala:67)
[error] scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
[error] scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:130)
[error] scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:130)
[error] scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:236)
[error] scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
[error] scala.collection.mutable.HashMap.foreach(HashMap.scala:130)
[error] scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
[error] sbt.internal.inc.classfile.Analyze$.apply(Analyze.scala:67)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler$$anonfun$compile$2$$anonfun$apply$mcV$sp$2.apply(AnalyzingJavaCompiler.scala:161)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler$$anonfun$compile$2$$anonfun$apply$mcV$sp$2.apply(AnalyzingJavaCompiler.scala:159)
[error] scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
[error] scala.collection.immutable.List.foreach(List.scala:392)
[error] scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler$$anonfun$compile$2.apply$mcV$sp(AnalyzingJavaCompiler.scala:159)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler$$anonfun$compile$2.apply(AnalyzingJavaCompiler.scala:159)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler$$anonfun$compile$2.apply(AnalyzingJavaCompiler.scala:159)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler.timed(AnalyzingJavaCompiler.scala:196)
[error] sbt.internal.inc.javac.AnalyzingJavaCompiler.compile(AnalyzingJavaCompiler.scala:158)
[error] sbt.internal.inc.MixedAnalyzingCompiler$$anonfun$compileJava$1$1.apply$mcV$sp(MixedAnalyzingCompiler.scala:96)
[error] sbt.internal.inc.MixedAnalyzingCompiler$$anonfun$compileJava$1$1.apply(MixedAnalyzingCompiler.scala:89)
[error] sbt.internal.inc.MixedAnalyzingCompiler$$anonfun$compileJava$1$1.apply(MixedAnalyzingCompiler.scala:89)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:132)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileJava$1(MixedAnalyzingCompiler.scala:89)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:115)
[error] sbt.internal.inc.IncrementalCompilerImpl$$anonfun$4.apply(IncrementalCompilerImpl.scala:305)
[error] sbt.internal.inc.IncrementalCompilerImpl$$anonfun$4.apply(IncrementalCompilerImpl.scala:305)
[error] sbt.internal.inc.Incremental$.doCompile(Incremental.scala:101)
[error] sbt.internal.inc.Incremental$$anonfun$1$$anonfun$apply$1.apply(Incremental.scala:82)
[error] sbt.internal.inc.Incremental$$anonfun$1$$anonfun$apply$1.apply(Incremental.scala:82)
[error] sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:118)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:58)
[error] sbt.internal.inc.Incremental$$anonfun$1.apply(Incremental.scala:76)
[error] sbt.internal.inc.Incremental$$anonfun$1.apply(Incremental.scala:75)
[error] sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:129)
[error] sbt.internal.inc.Incremental$.compile(Incremental.scala:75)
[error] sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:70)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:302)
[error] sbt.internal.inc.IncrementalCompilerImpl$$anonfun$compileIncrementally$1.apply(IncrementalCompilerImpl.scala:263)
[error] sbt.internal.inc.IncrementalCompilerImpl$$anonfun$compileIncrementally$1.apply(IncrementalCompilerImpl.scala:237)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:158)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:237)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:68)
Reactions are currently unavailable