В демонстрационном проекте, https://github.com/chbatey/akka-http-typed существует следующий код, который компилируется, но я не могу понять, как получается, что выражение "Http () (untypedSystem) .bindAndHandle (rout.userRoutes, "localhost", 8080) "можно скомпилировать, учитывая, что метод bindAndHandle принимает указанные ниже параметры (поэтому первым должен быть Flow, но это Route, т.е. тип RequestContext ⇒ тип функции Future [RouteResult]).
В другом проекте я получаю ошибку компиляции, которую я могу понять, потому что фактический параметр имеет тип Route, но объявленный тип первого аргумента, если Flow.
Пожалуйста, совет.
//def bindAndHandle(
// handler: Flow[HttpRequest, HttpResponse, Any],
// interface: String, port: Int = DefaultPortForProtocol,
// connectionContext: ConnectionContext = defaultServerHttpContext,
val serverBinding: Future[Http.ServerBinding] = Http()(untypedSystem).bindAndHandle(routes.userRoutes, "localhost", 8080)
//type of routes.userRoutes is Route
//where type Route = RequestContext ⇒ Future[RouteResult]
//how can it be that this compiles? In another project it does not (which makes more sense to me)