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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303
|
trait Cov[+A]
trait Con[-A]
trait Inv[A]
trait Trait[-A, +B, C] {
// trait Inner[-D <: C, +E >: C, F] {
trait Inner[-D <: C, +E >: C, F] {
def f0(x: A): Unit = ()
def f1(x: B): Unit = ()
def f2(x: C): Unit = ()
def f3(x: D): Unit = ()
def f4(x: E): Unit = ()
def f5(x: F): Unit = ()
def f6(): A = ???
def f7(): B = ???
def f8(): C = ???
def f9(): D = ???
def f10(): E = ???
def f11(): F = ???
def f12(f: A => A): Unit = ()
def f13(f: A => B): Unit = ()
def f14(f: A => C): Unit = ()
def f15(f: A => D): Unit = ()
def f16(f: A => E): Unit = ()
def f17(f: A => F): Unit = ()
def f18(f: B => A): Unit = ()
def f19(f: B => B): Unit = ()
def f20(f: B => C): Unit = ()
def f21(f: B => D): Unit = ()
def f22(f: B => E): Unit = ()
def f23(f: B => F): Unit = ()
def f24(f: C => A): Unit = ()
def f25(f: C => B): Unit = ()
def f26(f: C => C): Unit = ()
def f27(f: C => D): Unit = ()
def f28(f: C => E): Unit = ()
def f29(f: C => F): Unit = ()
def f30(f: D => A): Unit = ()
def f31(f: D => B): Unit = ()
def f32(f: D => C): Unit = ()
def f33(f: D => D): Unit = ()
def f34(f: D => E): Unit = ()
def f35(f: D => F): Unit = ()
def f36(f: E => A): Unit = ()
def f37(f: E => B): Unit = ()
def f38(f: E => C): Unit = ()
def f39(f: E => D): Unit = ()
def f40(f: E => E): Unit = ()
def f41(f: E => F): Unit = ()
def f42(f: F => A): Unit = ()
def f43(f: F => B): Unit = ()
def f44(f: F => C): Unit = ()
def f45(f: F => D): Unit = ()
def f46(f: F => E): Unit = ()
def f47(f: F => F): Unit = ()
def f48(): A => A = null
def f49(): A => B = null
def f50(): A => C = null
def f51(): A => D = null
def f52(): A => E = null
def f53(): A => F = null
def f54(): B => A = null
def f55(): B => B = null
def f56(): B => C = null
def f57(): B => D = null
def f58(): B => E = null
def f59(): B => F = null
def f60(): C => A = null
def f61(): C => B = null
def f62(): C => C = null
def f63(): C => D = null
def f64(): C => E = null
def f65(): C => F = null
def f66(): D => A = null
def f67(): D => B = null
def f68(): D => C = null
def f69(): D => D = null
def f70(): D => E = null
def f71(): D => F = null
def f72(): E => A = null
def f73(): E => B = null
def f74(): E => C = null
def f75(): E => D = null
def f76(): E => E = null
def f77(): E => F = null
def f78(): F => A = null
def f79(): F => B = null
def f80(): F => C = null
def f81(): F => D = null
def f82(): F => E = null
def f83(): F => F = null
def f84(x: A): A = ???
def f85(x: A): B = ???
def f86(x: A): C = ???
def f87(x: A): D = ???
def f88(x: A): E = ???
def f89(x: A): F = ???
def f90(x: B): A = ???
def f91(x: B): B = ???
def f92(x: B): C = ???
def f93(x: B): D = ???
def f94(x: B): E = ???
def f95(x: B): F = ???
def f96(x: C): A = ???
def f97(x: C): B = ???
def f98(x: C): C = ???
def f99(x: C): D = ???
def f100(x: C): E = ???
def f101(x: C): F = ???
def f102(x: D): A = ???
def f103(x: D): B = ???
def f104(x: D): C = ???
def f105(x: D): D = ???
def f106(x: D): E = ???
def f107(x: D): F = ???
def f108(x: E): A = ???
def f109(x: E): B = ???
def f110(x: E): C = ???
def f111(x: E): D = ???
def f112(x: E): E = ???
def f113(x: E): F = ???
def f114(x: F): A = ???
def f115(x: F): B = ???
def f116(x: F): C = ???
def f117(x: F): D = ???
def f118(x: F): E = ???
def f119(x: F): F = ???
object O1 extends Cov[A]
object O2 extends Cov[B]
object O3 extends Cov[C]
object O4 extends Cov[D]
object O5 extends Cov[E]
object O6 extends Cov[F]
object O7 extends Con[A]
object O8 extends Con[B]
object O9 extends Con[C]
object O10 extends Con[D]
object O11 extends Con[E]
object O12 extends Con[F]
object O13 extends Inv[A]
object O14 extends Inv[B]
object O15 extends Inv[C]
object O16 extends Inv[D]
object O17 extends Inv[E]
object O18 extends Inv[F]
}
}
trait Trait2[-A, +B, C] {
// trait Inner[-D <: C, +E >: C, F] {
def method[D <: A, E >: B, F]() {
def f0(x: A): Unit = ()
def f1(x: B): Unit = ()
def f2(x: C): Unit = ()
def f3(x: D): Unit = ()
def f4(x: E): Unit = ()
def f5(x: F): Unit = ()
def f6(): A = ???
def f7(): B = ???
def f8(): C = ???
def f9(): D = ???
def f10(): E = ???
def f11(): F = ???
def f12(f: A => A): Unit = ()
def f13(f: A => B): Unit = ()
def f14(f: A => C): Unit = ()
def f15(f: A => D): Unit = ()
def f16(f: A => E): Unit = ()
def f17(f: A => F): Unit = ()
def f18(f: B => A): Unit = ()
def f19(f: B => B): Unit = ()
def f20(f: B => C): Unit = ()
def f21(f: B => D): Unit = ()
def f22(f: B => E): Unit = ()
def f23(f: B => F): Unit = ()
def f24(f: C => A): Unit = ()
def f25(f: C => B): Unit = ()
def f26(f: C => C): Unit = ()
def f27(f: C => D): Unit = ()
def f28(f: C => E): Unit = ()
def f29(f: C => F): Unit = ()
def f30(f: D => A): Unit = ()
def f31(f: D => B): Unit = ()
def f32(f: D => C): Unit = ()
def f33(f: D => D): Unit = ()
def f34(f: D => E): Unit = ()
def f35(f: D => F): Unit = ()
def f36(f: E => A): Unit = ()
def f37(f: E => B): Unit = ()
def f38(f: E => C): Unit = ()
def f39(f: E => D): Unit = ()
def f40(f: E => E): Unit = ()
def f41(f: E => F): Unit = ()
def f42(f: F => A): Unit = ()
def f43(f: F => B): Unit = ()
def f44(f: F => C): Unit = ()
def f45(f: F => D): Unit = ()
def f46(f: F => E): Unit = ()
def f47(f: F => F): Unit = ()
def f48(): A => A = null
def f49(): A => B = null
def f50(): A => C = null
def f51(): A => D = null
def f52(): A => E = null
def f53(): A => F = null
def f54(): B => A = null
def f55(): B => B = null
def f56(): B => C = null
def f57(): B => D = null
def f58(): B => E = null
def f59(): B => F = null
def f60(): C => A = null
def f61(): C => B = null
def f62(): C => C = null
def f63(): C => D = null
def f64(): C => E = null
def f65(): C => F = null
def f66(): D => A = null
def f67(): D => B = null
def f68(): D => C = null
def f69(): D => D = null
def f70(): D => E = null
def f71(): D => F = null
def f72(): E => A = null
def f73(): E => B = null
def f74(): E => C = null
def f75(): E => D = null
def f76(): E => E = null
def f77(): E => F = null
def f78(): F => A = null
def f79(): F => B = null
def f80(): F => C = null
def f81(): F => D = null
def f82(): F => E = null
def f83(): F => F = null
def f84(x: A): A = ???
def f85(x: A): B = ???
def f86(x: A): C = ???
def f87(x: A): D = ???
def f88(x: A): E = ???
def f89(x: A): F = ???
def f90(x: B): A = ???
def f91(x: B): B = ???
def f92(x: B): C = ???
def f93(x: B): D = ???
def f94(x: B): E = ???
def f95(x: B): F = ???
def f96(x: C): A = ???
def f97(x: C): B = ???
def f98(x: C): C = ???
def f99(x: C): D = ???
def f100(x: C): E = ???
def f101(x: C): F = ???
def f102(x: D): A = ???
def f103(x: D): B = ???
def f104(x: D): C = ???
def f105(x: D): D = ???
def f106(x: D): E = ???
def f107(x: D): F = ???
def f108(x: E): A = ???
def f109(x: E): B = ???
def f110(x: E): C = ???
def f111(x: E): D = ???
def f112(x: E): E = ???
def f113(x: E): F = ???
def f114(x: F): A = ???
def f115(x: F): B = ???
def f116(x: F): C = ???
def f117(x: F): D = ???
def f118(x: F): E = ???
def f119(x: F): F = ???
object O1 extends Cov[A]
object O2 extends Cov[B]
object O3 extends Cov[C]
object O4 extends Cov[D]
object O5 extends Cov[E]
object O6 extends Cov[F]
object O7 extends Con[A]
object O8 extends Con[B]
object O9 extends Con[C]
object O10 extends Con[D]
object O11 extends Con[E]
object O12 extends Con[F]
object O13 extends Inv[A]
object O14 extends Inv[B]
object O15 extends Inv[C]
object O16 extends Inv[D]
object O17 extends Inv[E]
object O18 extends Inv[F]
()
}
}
|