I’m creating a new phoenix application (my first time) and I am seeing the following warning when I am using mix phoenix,gen.html to build my DB tables:
warning: found quoted keyword "test" but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them mix.exs:57
I realize that the warning has nothing to do with the table building but wonder why Phoenix is generating its own ‘bugs’ (to me, a warning is a bug)? Is it because I am using mix phoenix,gen.html instead of mix phx,gen.html?
I’ve removed the quotes from the atom but it still moans about the line… my guess is that it doesn’t like the other quoted “test” either, but I assume that is a command parameter that needs to be quoted?
defp aliases do
[
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
"ecto.reset": ["ecto.drop", "ecto.setup"],
test: ["ecto.create --quiet", "ecto.migrate", "test"]
]
end
Well, warnings are printed to be acted on, there is currently no way to silence them besides changing the code accordingly or to change to a version of elixir that does not emit the warnings.
And I really hope, there will never be a way to silence the warnings, that would totally defeat their purpose.
I think I should be able to write :"something" without the compiler constantly throwing warning messages at me
Jokes aside, I don’t believe all warnings are equally important, especially in this case. There should be a way to tell the compiler “I know what I’m doing” so it can suppress specific warnings.
If it is only possible to create with quotes, it shouldn’t create any warning. If it indeed creates a warning and is not possible without quotes, please file a bug at https://github.com/elixir-lang/elixir.
edit
For me :"$" doesn’t create a warning. I’m on Elixir 1.7.3 compiled and running on OTP 21.