Hullaballoonatic
09/08/2018, 5:37 PMkarelpeeters
09/08/2018, 5:39 PMHullaballoonatic
09/08/2018, 5:40 PMkarelpeeters
09/08/2018, 5:42 PMkarelpeeters
09/08/2018, 5:45 PMHullaballoonatic
09/08/2018, 5:46 PMkarelpeeters
09/08/2018, 5:51 PMComparator<T> and an add: (T, T) -> T.Hullaballoonatic
09/08/2018, 5:53 PMHullaballoonatic
09/08/2018, 5:54 PMinferred type Pos is not a subtype of IxState<*, Comparable<Any>>Hullaballoonatic
09/08/2018, 5:54 PMPos extends this: IxState<Pair<Float, Float>, Float>Hullaballoonatic
09/08/2018, 5:55 PMHullaballoonatic
09/08/2018, 5:55 PMComparable<*>Hullaballoonatic
09/08/2018, 5:56 PMkarelpeeters
09/08/2018, 6:03 PMHullaballoonatic
09/08/2018, 6:04 PMHullaballoonatic
09/08/2018, 6:08 PMval searcher = UniformCostSearch(PosComparator(), CostComparator())
class UniformCostSearch<D: Any, C: Comparable<*>>(
dataComp: Comparator<State<D, C>>,
costComp: Comparator<State<D, C>>
)
class PosComparator : Comparator<Pos>
open class Pos: State<Pair<Float, Float>, Float>Hullaballoonatic
09/08/2018, 6:08 PMHullaballoonatic
09/08/2018, 6:09 PMPosComparator() as dataComp in UniformCostSearchHullaballoonatic
09/08/2018, 6:10 PMType mismatch.
Required:
kotlin.Comparator<State<???, ???>> /* = java.util.Comparator<State<???, ???>> */
Found:
PosComparatorHullaballoonatic
09/08/2018, 6:12 PMType inference failed:
constructor UniformCostSearch<D : Any, C : Comparable<*>>
(
dataComp: kotlin.Comparator<State<D, C>> /* = java.util.Comparator<State<D, C>> */,
costComp: kotlin.Comparator<State<D, C>> /* = java.util.Comparator<State<D, C>> */
)
cannot be applied to
(
PosComparator,
CostComparator
)karelpeeters
09/08/2018, 6:14 PMkarelpeeters
09/08/2018, 6:15 PMPosComparator can compare Pos instances, and Pos instances are also State<Pair<Float, Float>, Float> instances.karelpeeters
09/08/2018, 6:15 PMState<Pair<Float, Float>, Float> is also a Pos.karelpeeters
09/08/2018, 6:16 PMUniformCostSearch would need a Comparator<State<Pair<Float, Float>, Float>> here, but you only provide a Comparator<Pos>.Hullaballoonatic
09/08/2018, 6:18 PMHullaballoonatic
09/08/2018, 6:19 PMHullaballoonatic
09/08/2018, 6:19 PMkarelpeeters
09/08/2018, 6:21 PMclass UniformCostSearch<S>(
dataComp: Comparator<S>,
costComp: Comparator<S>
)Hullaballoonatic
09/08/2018, 6:21 PMkarelpeeters
09/08/2018, 6:21 PMHullaballoonatic
09/08/2018, 6:22 PMHullaballoonatic
09/08/2018, 6:22 PMkarelpeeters
09/08/2018, 6:22 PMHullaballoonatic
09/08/2018, 6:23 PMHullaballoonatic
09/08/2018, 6:29 PMkarelpeeters
09/08/2018, 6:31 PMkarelpeeters
09/08/2018, 6:31 PMinterface State<D, C>
val searcher = UniformCostSearch(PosComparator(), PosComparator())
class UniformCostSearch<S>(
dataComp: Comparator<S>,
costComp: Comparator<S>
)
class PosComparator : Comparator<Pos> {
override fun compare(a: Pos, b: Pos) = 0
}
open class Pos: State<Pair<Float, Float>, Float>Hullaballoonatic
09/08/2018, 6:32 PMHullaballoonatic
09/08/2018, 6:33 PMHullaballoonatic
09/08/2018, 6:33 PM