Closed
Description
minimized code
abstract class Foo[T] {
type Species
def foo(s: Species): Nothing = ???
}
def species[T] = {
class FooT extends Foo[T] {
type Species = FooT
}
FooT()
}
Stack trace
[error] ## Exception when compiling 1 source to /Users/jamie/workspace/test-dotty/target/scala-0.18/classes
[error] null
[error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:161)
[error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:169)
[error] dotty.tools.dotc.core.TypeComparer.topLevelSubType(TypeComparer.scala:126)
[error] dotty.tools.dotc.core.Types$Type.$less$colon$less(Types.scala:855)
[error] dotty.tools.dotc.typer.TypeAssigner.addRefinement$2(TypeAssigner.scala:62)
[error] dotty.tools.dotc.typer.TypeAssigner.$anonfun$3(TypeAssigner.scala:75)
[error] scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:170)
[error] scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:166)
[error] scala.collection.immutable.List.foldLeft(List.scala:82)
[error] dotty.tools.dotc.typer.TypeAssigner.classBound(TypeAssigner.scala:75)
[error] dotty.tools.dotc.typer.Typer.classBound(Typer.scala:83)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:113)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4530)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4527)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:113)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4530)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4527)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:113)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4530)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4527)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:113)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4530)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4527)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:113)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4530)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4527)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:113)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4530)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4527)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:127)
[error] dotty.tools.dotc.typer.TypeAssigner$$anon$1.apply(TypeAssigner.scala:113)
[error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:4530)
...
...
...