1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
abstract class F {
final def apply(x: Int): AnyRef = null
}
abstract class AbstractModule {
def as: List[AnyRef]
def ms: List[AbstractModule]
def fs: List[F] = Nil
def rs(x: Int): List[AnyRef] = fs.map(_(x))
}
abstract class ModuleType1 extends AbstractModule {}
abstract class ModuleType2 extends AbstractModule {}
object ModuleAE extends ModuleType1 {
def as = Nil
def ms = Nil
}
object ModuleAF extends ModuleType2 {
def as = Nil
def ms = List(ModuleAE)
}
object ModuleAG extends ModuleType1 {
def as = List("")
def ms = Nil
}
object ModuleAI extends ModuleType1 {
def as = Nil
def ms = List(ModuleAE)
}
object ModuleAK extends ModuleType2 {
def as = Nil
def ms = List(ModuleAF)
}
object ModuleAL extends ModuleType1 {
def as = Nil
def ms = List(
ModuleAG,
ModuleAI
)
}
object ModuleAM extends ModuleType1 {
def as = Nil
def ms = List(
ModuleAL,
ModuleAE
) ::: List(ModuleAK)
}
object ModuleBE extends ModuleType1 {
def as = Nil
def ms = Nil
}
object ModuleBF extends ModuleType2 {
def as = Nil
def ms = List(ModuleBE)
}
object ModuleBG extends ModuleType1 {
def as = List("")
def ms = Nil
}
object ModuleBI extends ModuleType1 {
def as = Nil
def ms = List(ModuleBE)
}
object ModuleBK extends ModuleType2 {
def as = Nil
def ms = List(ModuleBF)
}
object ModuleBL extends ModuleType1 {
def as = Nil
def ms = List(
ModuleBG,
ModuleBI
)
}
object ModuleBM extends ModuleType1 {
def as = Nil
def ms = List(
ModuleBL,
ModuleBE
) ::: List(ModuleBK)
}
|