適切に対処する方法がわからない不一致の戻り値に関するダイアライザー エラーが発生しています。
mix dialyzer --quiet
lib/my_app_web/router.ex:1:no_return
Function __checks__/0 has no local return.
________________________________________________________________________________
lib/my_app_web/router.ex:21:unmatched_return
The expression produces a value of type:
%{
:adapter => _,
:before_send => _,
:content_type => _,
:context => _,
:document_providers => _,
:json_codec => _,
:log_level => _,
:no_query_message => _,
:pipeline => _,
:pubsub => _,
:raw_options => Keyword.t(),
:schema_mod => atom(),
:serializer => _
}
but this value is unmatched.
________________________________________________________________________________
lib/my_app_web/router.ex:24:unmatched_return
The expression produces a value of type:
%{
:adapter => _,
:additional_pipeline => _,
:assets => _,
:before_send => _,
:content_type => _,
:context => _,
:default_headers => _,
:default_url => _,
:document_providers => _,
:interface => _,
:json_codec => _,
:log_level => _,
:no_query_message => _,
:pipeline => {Absinthe.Plug.GraphiQL, :pipeline},
:pubsub => _,
:raw_options => [{_, _}],
:schema_mod => atom(),
:serializer => _,
:socket => _,
:socket_url => _
}
but this value is unmatched.
私mix.exs
はこのように見えます:
def project do
[
app: :my_app,
version: "0.1.0",
elixir: "1.9.4",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:phoenix, :gettext] ++ Mix.compilers(),
start_permanent: Mix.env() == :prod,
dialyzer: [
plt_add_deps: :transitive,
flags: [:error_handling, :race_conditions, :unmatched_returns, :underspecs]
],
aliases: aliases(),
deps: deps()
]
end
私router.ex
はこのように見えます:
defmodule MyAppWeb.Router do
use MyAppWeb, :router
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
plug MyAppWeb.Auth
end
pipeline :api do
plug :accepts, ["json"]
end
# Other scopes may use custom stacks.
scope "/api" do
pipe_through :api
forward "/graphql", Absinthe.Plug, schema: MyAppWeb.Schema.UserTypes
if Mix.env() == :dev do
forward "/graphiql", Absinthe.Plug.GraphiQL,
schema: MyAppWeb.Schema.UserTypes,
interface: :simple
end
end
scope "/", MyAppWeb do
pipe_through :browser
resources "/users", UserController,
only: [:index, :show, :new, :create, :edit, :delete, :update]
resources "/sessions", SessionController, only: [:new, :create, :delete]
get "/", PageController, :index, as: :home
get "/*path", PageController, :index
end
end
トリックを試しました_ =
が、うまくいかないようです。比類のないリターンを使用すると役立つと思いますが、この場合はおそらくそうではありません. このページ ( https://github.com/jeremyjh/dialyxir/wiki/Phoenix-Dialyxir-Quickstart ) を読みましたが、この問題の解決には役立たなかったと思います。
フィードバックや方向性は大歓迎です。
ありがとうございました