loloof64
03/31/2017, 2:13 PMkirillrakhman
03/31/2017, 2:14 PMkirillrakhman
03/31/2017, 2:15 PMinterface Promotable
to those classes and use fun <T> foo(factory: () -> T) where T: ChessPiece, T: Promotable
loloof64
03/31/2017, 2:15 PMkirillrakhman
03/31/2017, 2:15 PMloloof64
03/31/2017, 2:20 PMkirillrakhman
03/31/2017, 2:21 PMloloof64
03/31/2017, 2:21 PMloloof64
03/31/2017, 2:22 PMkirillrakhman
03/31/2017, 2:22 PMfun <T> foo(klass: KClass<T>) where T: ChessPiece, T: Promotable
loloof64
03/31/2017, 2:23 PMloloof64
03/31/2017, 2:25 PMloloof64
03/31/2017, 2:26 PMloloof64
03/31/2017, 2:27 PMloloof64
03/31/2017, 2:28 PMkirillrakhman
03/31/2017, 2:30 PMkirillrakhman
03/31/2017, 2:30 PMfun foo() {
doMove(1 to 1, 2 to 2, Queen::class)
}
fun <T> doMove(startSquare: Pair<Int, Int>, endSquare: Pair<Int, Int>,
promotionPiece: KClass<out T>): ChessGame where T: ChessPiece, T: Promotable {
TODO()
}
loloof64
03/31/2017, 2:32 PMloloof64
03/31/2017, 2:33 PMkirillrakhman
03/31/2017, 2:34 PMloloof64
03/31/2017, 2:35 PMloloof64
03/31/2017, 2:36 PMuli
03/31/2017, 2:37 PMloloof64
03/31/2017, 2:37 PMkirillrakhman
03/31/2017, 2:37 PMloloof64
03/31/2017, 2:38 PMloloof64
03/31/2017, 2:38 PMloloof64
03/31/2017, 2:38 PMloloof64
03/31/2017, 2:39 PM