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

assertion failed: List(value a, value a) #10004

Open
scabug opened this issue Oct 21, 2016 · 1 comment
Open

assertion failed: List(value a, value a) #10004

scabug opened this issue Oct 21, 2016 · 1 comment

Comments

@scabug
Copy link

scabug commented Oct 21, 2016

The following case causes an assertion failure in the latest 2.12 version. The case is derived from "t4790.scala" in the testsuite.

It seems to be a trunk regression since 2.11.8 and 2.9 are both OK.

$ scalac -version
Scala compiler version 2.12.0-20161020-214217-5b8e4d3 -- Copyright 2002-2016, LAMP/EPFL and Lightbend, Inc.


$ scalac crash-t4790.scala-95.scala
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Boolean,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Byte,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Char,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Double,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Float,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Int,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Long,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Short,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
crash-t4790.scala-95.scala:2: warning: class Sp must be a trait. Specialized version of class Fsp will inherit generic spectest.Sp[Unit,B]
 class Fsp [ @ specialized A , B ] ( a : A , b : B ) extends Sp ( a , b ) { def ab = ( a , b ) } }
       ^
error: java.lang.AssertionError: assertion failed: List(value a, value a)
	at scala.Predef$.assert(Predef.scala:219)
	at scala.reflect.internal.Symbols$Symbol.suchThat(Symbols.scala:1931)
	at scala.reflect.internal.Types.rebind(Types.scala:3474)
	at scala.reflect.internal.Types.singleType(Types.scala:3500)
	at scala.reflect.internal.Types.singleType$(Types.scala:3494)
	at scala.reflect.internal.SymbolTable.singleType(SymbolTable.scala:16)
	at scala.tools.nsc.typechecker.Typers$Typer.stabilizeFun(Typers.scala:657)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4632)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4681)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5447)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5579)
	at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5585)
	at scala.tools.nsc.typechecker.Typers$Typer.typedSelectOrSuperCall$1(Typers.scala:4913)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5448)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5573)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTypeApply$1(Typers.scala:5226)
	at scala.tools.nsc.typechecker.Typers$Typer.typedOutsidePatternMode$1(Typers.scala:5424)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5457)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typed1$27(Typers.scala:4626)
	at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:702)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4628)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4681)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5447)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedArg$1(Typers.scala:3200)
	at scala.tools.nsc.typechecker.Typers$Typer.withCondConstrTyper(Typers.scala:481)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:3200)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.typedArgWithFormal$1(PatternTypers.scala:113)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.$anonfun$typedArgsForFormals$1(PatternTypers.scala:116)
	at scala.runtime.Tuple2Zipped$.$anonfun$map$1(Tuple2Zipped.scala:47)
	at scala.collection.immutable.List.foreach(List.scala:378)
	at scala.runtime.Tuple2Zipped$.map$extension(Tuple2Zipped.scala:45)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.typedArgsForFormals(PatternTypers.scala:116)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.typedArgsForFormals$(PatternTypers.scala:110)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArgsForFormals(Typers.scala:111)
	at scala.tools.nsc.typechecker.Typers$Typer.handleMonomorphicCall$1(Typers.scala:3545)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$doTypedApply$30(Typers.scala:3571)
	at scala.tools.nsc.typechecker.TypeDiagnostics$TyperDiagnostics$checkDead$.updateExpr(TypeDiagnostics.scala:575)
	at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3571)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4647)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4681)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5447)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5709)
	at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2270)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5412)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:236)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5555)
	at scala.tools.nsc.typechecker.Duplicators.retyped(Duplicators.scala:36)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationDuplicator.super$retyped(SpecializeTypes.scala:1338)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationDuplicator.$anonfun$retyped$1(SpecializeTypes.scala:1338)
	at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:235)
	at scala.tools.nsc.Global.enteringSpecialize(Global.scala:973)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationDuplicator.retyped(SpecializeTypes.scala:1338)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.duplicateBody(SpecializeTypes.scala:1799)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform1$31(SpecializeTypes.scala:1649)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transformDefDef$1(SpecializeTypes.scala:1649)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1721)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1404)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformTrees$1(Trees.scala:2559)
	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.transformTrees(Trees.scala:2559)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform1$25(SpecializeTypes.scala:1632)
	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.SpecializeTypes$$anon$2.transformTemplate$1(SpecializeTypes.scala:1632)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1634)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1404)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2563)
	at scala.reflect.internal.Trees.$anonfun$itransform$4(Trees.scala:1412)
	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.itransform(Trees.scala:1411)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	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.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1745)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1404)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2589)
	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.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform1$21(SpecializeTypes.scala:1618)
	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.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1616)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationTransformer.$anonfun$transform$5(SpecializeTypes.scala:1991)
	at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:235)
	at scala.reflect.internal.SymbolTable.exitingPhase(SymbolTable.scala:256)
	at scala.tools.nsc.Global.exitingSpecialize(Global.scala:963)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationTransformer.transform(SpecializeTypes.scala:1991)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationTransformer.transform(SpecializeTypes.scala:1987)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:140)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$applyPhase$1(Global.scala:402)
	at scala.tools.nsc.Global$GlobalPhase.withCurrentUnitNoLog(Global.scala:395)
	at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:386)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:402)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1(Global.scala:366)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1$adapted(Global.scala:366)
	at scala.collection.Iterator.foreach(Iterator.scala:932)
	at scala.collection.Iterator.foreach$(Iterator.scala:932)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1409)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:366)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1404)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1389)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1384)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1478)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:35)
	at scala.tools.nsc.MainClass.doCompile(Main.scala:24)
	at scala.tools.nsc.Driver.process(Driver.scala:55)
	at scala.tools.nsc.Driver.main(Driver.scala:68)
	at scala.tools.nsc.Main.main(Main.scala)
Exception in thread "main" java.lang.AssertionError: assertion failed: List(value a, value a)
	at scala.Predef$.assert(Predef.scala:219)
	at scala.reflect.internal.Symbols$Symbol.suchThat(Symbols.scala:1931)
	at scala.reflect.internal.Types.rebind(Types.scala:3474)
	at scala.reflect.internal.Types.singleType(Types.scala:3500)
	at scala.reflect.internal.Types.singleType$(Types.scala:3494)
	at scala.reflect.internal.SymbolTable.singleType(SymbolTable.scala:16)
	at scala.tools.nsc.typechecker.Typers$Typer.stabilizeFun(Typers.scala:657)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4632)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4681)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5447)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5579)
	at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5585)
	at scala.tools.nsc.typechecker.Typers$Typer.typedSelectOrSuperCall$1(Typers.scala:4913)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5448)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5573)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTypeApply$1(Typers.scala:5226)
	at scala.tools.nsc.typechecker.Typers$Typer.typedOutsidePatternMode$1(Typers.scala:5424)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5457)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typed1$27(Typers.scala:4626)
	at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:702)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4628)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4681)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5447)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typedArg$1(Typers.scala:3200)
	at scala.tools.nsc.typechecker.Typers$Typer.withCondConstrTyper(Typers.scala:481)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:3200)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.typedArgWithFormal$1(PatternTypers.scala:113)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.$anonfun$typedArgsForFormals$1(PatternTypers.scala:116)
	at scala.runtime.Tuple2Zipped$.$anonfun$map$1(Tuple2Zipped.scala:47)
	at scala.collection.immutable.List.foreach(List.scala:378)
	at scala.runtime.Tuple2Zipped$.map$extension(Tuple2Zipped.scala:45)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.typedArgsForFormals(PatternTypers.scala:116)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper.typedArgsForFormals$(PatternTypers.scala:110)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArgsForFormals(Typers.scala:111)
	at scala.tools.nsc.typechecker.Typers$Typer.handleMonomorphicCall$1(Typers.scala:3545)
	at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$doTypedApply$30(Typers.scala:3571)
	at scala.tools.nsc.typechecker.TypeDiagnostics$TyperDiagnostics$checkDead$.updateExpr(TypeDiagnostics.scala:575)
	at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3571)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4647)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4681)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5447)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5464)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:384)
	at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5709)
	at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2270)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5412)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5463)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5500)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5530)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5474)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5478)
	at scala.tools.nsc.typechecker.Duplicators$BodyDuplicator.typed(Duplicators.scala:236)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5555)
	at scala.tools.nsc.typechecker.Duplicators.retyped(Duplicators.scala:36)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationDuplicator.super$retyped(SpecializeTypes.scala:1338)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationDuplicator.$anonfun$retyped$1(SpecializeTypes.scala:1338)
	at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:235)
	at scala.tools.nsc.Global.enteringSpecialize(Global.scala:973)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationDuplicator.retyped(SpecializeTypes.scala:1338)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.duplicateBody(SpecializeTypes.scala:1799)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform1$31(SpecializeTypes.scala:1649)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transformDefDef$1(SpecializeTypes.scala:1649)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1721)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1404)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformTrees$1(Trees.scala:2559)
	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.transformTrees(Trees.scala:2559)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform1$25(SpecializeTypes.scala:1632)
	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.SpecializeTypes$$anon$2.transformTemplate$1(SpecializeTypes.scala:1632)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1634)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1404)
	at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2563)
	at scala.reflect.internal.Trees.$anonfun$itransform$4(Trees.scala:1412)
	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.itransform(Trees.scala:1411)
	at scala.reflect.internal.Trees.itransform$(Trees.scala:1340)
	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.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1745)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1404)
	at scala.reflect.api.Trees$Transformer.$anonfun$transformStats$1(Trees.scala:2589)
	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.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform1$21(SpecializeTypes.scala:1618)
	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.SpecializeTypes$$anon$2.transform1(SpecializeTypes.scala:1616)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.$anonfun$transform$3(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.reportError(SpecializeTypes.scala:1453)
	at scala.tools.nsc.transform.SpecializeTypes$$anon$2.transform(SpecializeTypes.scala:1461)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationTransformer.$anonfun$transform$5(SpecializeTypes.scala:1991)
	at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:235)
	at scala.reflect.internal.SymbolTable.exitingPhase(SymbolTable.scala:256)
	at scala.tools.nsc.Global.exitingSpecialize(Global.scala:963)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationTransformer.transform(SpecializeTypes.scala:1991)
	at scala.tools.nsc.transform.SpecializeTypes$SpecializationTransformer.transform(SpecializeTypes.scala:1987)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:140)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$applyPhase$1(Global.scala:402)
	at scala.tools.nsc.Global$GlobalPhase.withCurrentUnitNoLog(Global.scala:395)
	at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:386)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:402)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1(Global.scala:366)
	at scala.tools.nsc.Global$GlobalPhase.$anonfun$run$1$adapted(Global.scala:366)
	at scala.collection.Iterator.foreach(Iterator.scala:932)
	at scala.collection.Iterator.foreach$(Iterator.scala:932)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1409)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:366)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1404)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1389)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1384)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1478)
	at scala.tools.nsc.Driver.doCompile(Driver.scala:35)
	at scala.tools.nsc.MainClass.doCompile(Main.scala:24)
	at scala.tools.nsc.Driver.process(Driver.scala:55)
	at scala.tools.nsc.Driver.main(Driver.scala:68)
	at scala.tools.nsc.Main.main(Main.scala)


$ cat crash-t4790.scala-95.scala
package spectest {
  class Sp[@specialized A, B](val a: A, val b: B) {}
  class Fsp[@specialized A, B](a: A, b: B) extends Sp(a, b) { def ab = (a, b) }
}
@scabug
Copy link
Author

scabug commented Oct 21, 2016

Imported From: https://issues.scala-lang.org/browse/SI-10004?orig=1
Reporter: Qirun Zhang (helloqirun)
Affected Versions: 2.12.0-RC2

@scabug scabug added this to the Backlog milestone Apr 7, 2017
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

1 participant