Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AssertionError at scala.reflect.internal.Types$class.isConsistent$1(Types.scala:3858) #9114

Closed
scabug opened this issue Jan 26, 2015 · 4 comments

Comments

@scabug
Copy link

scabug commented Jan 26, 2015

scalan/scalan@2e992be leads to a compiler crash in Scala 2.11.4/5.

java.lang.AssertionError: assertion failed: (trait ReifiableExp,type Def)
	at scala.reflect.internal.Types$class.isConsistent$1(Types.scala:3858)
	at scala.reflect.internal.Types$$anonfun$isConsistent$1$4.apply(Types.scala:3876)
	at scala.reflect.internal.Types$$anonfun$isConsistent$1$4.apply(Types.scala:3876)
	at scala.reflect.internal.Types$ExistentialType.withTypeVars(Types.scala:2695)
	at scala.reflect.internal.Types$ExistentialType.withTypeVars(Types.scala:2689)
	at scala.reflect.internal.Types$class.isConsistent$1(Types.scala:3876)
	at scala.reflect.internal.Types$$anonfun$check$1$1.apply(Types.scala:3883)
	at scala.reflect.internal.Types$$anonfun$check$1$1.apply(Types.scala:3882)
	at scala.collection.LinearSeqOptimized$class.forall(LinearSeqOptimized.scala:83)
	at scala.collection.immutable.List.forall(List.scala:84)
	at scala.reflect.internal.Types$class.check$1(Types.scala:3882)
	at scala.reflect.internal.Types$class.isPopulated(Types.scala:3886)
	at scala.reflect.internal.SymbolTable.isPopulated(SymbolTable.scala:16)
	at scala.reflect.internal.Types$class.needsOuterTest(Types.scala:3923)
	at scala.reflect.internal.SymbolTable.needsOuterTest(SymbolTable.scala:16)
	at scala.tools.nsc.transform.patmat.MatchTreeMaking$TreeMakers$TypeTestTreeMaker.outerTestNeeded$lzycompute(MatchTreeMaking.scala:411)
	at scala.tools.nsc.transform.patmat.MatchTreeMaking$TreeMakers$TypeTestTreeMaker.outerTestNeeded(MatchTreeMaking.scala:411)
	at scala.tools.nsc.transform.patmat.MatchTreeMaking$TreeMakers$TypeTestTreeMaker.addOuterTest$1(MatchTreeMaking.scala:437)
	at scala.tools.nsc.transform.patmat.MatchTreeMaking$TreeMakers$TypeTestTreeMaker.mkDefault$1(MatchTreeMaking.scala:447)
	at scala.tools.nsc.transform.patmat.MatchTreeMaking$TreeMakers$TypeTestTreeMaker.renderCondition(MatchTreeMaking.scala:466)
	at scala.tools.nsc.transform.patmat.MatchTreeMaking$TreeMakers$TypeTestTreeMaker.<init>(MatchTreeMaking.scala:470)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.typeTestStep(MatchTranslation.scala:102)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.nextStep(MatchTranslation.scala:152)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.translate(MatchTranslation.scala:159)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree$$anonfun$translate$1.apply(MatchTranslation.scala:159)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree$$anonfun$translate$1.apply(MatchTranslation.scala:159)
	at scala.collection.immutable.List.flatMap(List.scala:327)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$TranslationStep.merge(MatchTranslation.scala:189)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$BoundTree.translate(MatchTranslation.scala:159)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translatePattern(MatchTranslation.scala:318)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translatePattern(PatternMatching.scala:89)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateCase(MatchTranslation.scala:315)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateCase(PatternMatching.scala:89)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$3.apply(MatchTranslation.scala:235)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$$anonfun$3.apply(MatchTranslation.scala:235)
	at scala.collection.immutable.List.map(List.scala:273)
	at scala.tools.nsc.transform.patmat.MatchTranslation$MatchTranslator$class.translateMatch(MatchTranslation.scala:235)
	at scala.tools.nsc.transform.patmat.PatternMatching$OptimizingMatchTranslator.translateMatch(PatternMatching.scala:89)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:62)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:57)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1363)
	at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1361)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1360)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:73)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:57)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2589)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2587)
	at scala.collection.immutable.List.loop$1(List.scala:173)
	at scala.collection.immutable.List.mapConserve(List.scala:189)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2587)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1404)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:40)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:73)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:57)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2563)
	at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1408)
	at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1407)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1406)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:73)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:57)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2589)
	at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2587)
	at scala.collection.immutable.List.loop$1(List.scala:173)
	at scala.collection.immutable.List.mapConserve(List.scala:189)
	at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2587)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1426)
	at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1426)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:25)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:17)
	at scala.reflect.internal.Trees$class.itransform(Trees.scala:1425)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:16)
	at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2555)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:40)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:42)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:42)
	at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2600)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:30)
	at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:42)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:73)
	at scala.tools.nsc.transform.patmat.PatternMatching$MatchTransformer.transform(PatternMatching.scala:57)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:147)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply$mcV$sp(Global.scala:441)
	at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:432)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:441)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:399)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:399)
	at scala.collection.Iterator$class.foreach(Iterator.scala:750)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1202)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:399)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1500)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1487)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1482)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1580)
	at xsbt.CachedCompiler0.run(CompilerInterface.scala:116)
	at xsbt.CachedCompiler0.run(CompilerInterface.scala:95)
	at xsbt.CompilerInterface.run(CompilerInterface.scala:26)
	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:606)
	at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
	at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:97)
	at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:97)
	at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:97)
	at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:162)
	at sbt.compiler.AggressiveCompile$$anonfun$3.compileScala$1(AggressiveCompile.scala:96)
	at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:139)
	at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:86)
	at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:38)
	at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:36)
	at sbt.inc.IncrementalCommon.cycle(IncrementalCommon.scala:31)
	at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:39)
	at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:38)
	at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:66)
	at sbt.inc.Incremental$.compile(Incremental.scala:38)
	at sbt.inc.IncrementalCompile$.apply(Compile.scala:26)
	at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:153)
	at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:70)
	at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:45)
	at sbt.Compiler$.apply(Compiler.scala:74)
	at sbt.Compiler$.apply(Compiler.scala:65)
	at sbt.Defaults$.sbt$Defaults$$compileTaskImpl(Defaults.scala:789)
	at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:781)
	at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:781)
	at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
	at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
	at sbt.std.Transform$$anon$4.work(System.scala:63)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
	at sbt.Execute.work(Execute.scala:235)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
	at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)

Scala 2.11.2 produces

[error] /home/aromanov/IdeaProjects/scalan-lite/core/src/main/scala/scalan/primitives/Thunks.scala:207: pattern type is incompatible with expected type;
[error]  found   : ThunksExp.this.ThunkIso[a,b]
[error]  required: ThunksExp.this.Iso[Source,ThunksExp.this.Thunk[T]]
[error]     case ThunkForce(HasViews(srcTh, iso: ThunkIso[a,b])) => {
[error]                                          ^

instead (which seems wrong; so far as I can see, the types are compatible).

Previous commit https://github.com/scalan/scalan-ce/tree/6a6e5cf657e2455a02642d8590294a048b755db9 compiles under Scala 2.11.5, but fails with the same compilation error under 2.11.2.

I'll try to minimize this when I have time.

@scabug
Copy link
Author

scabug commented Jan 26, 2015

Imported From: https://issues.scala-lang.org/browse/SI-9114?orig=1
Reporter: @alexeyr
Affected Versions: 2.11.4, 2.11.5

@scabug
Copy link
Author

scabug commented Jan 27, 2015

@retronym said:
Minimization and WIP patch https://github.com/retronym/scala/compare/ticket/9114

@scabug
Copy link
Author

scabug commented Oct 22, 2015

@alexeyr said:
Any updates? Ran into this again today with scalan/scalan@2e8cd1d, which should have a different minimization (Scala 2.11.7).

@scabug
Copy link
Author

scabug commented Jan 10, 2017

@SethTisue said:
scala/scala#5632

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants