It is not about being desirable for pipeline, I only explained why there isn't a warning there and why we didn't have to change the pipe to not get a warning. It just worked which makes perfect sense because there is no ambiguity there.
And name clash is the ambiguity. It is only unclear what they mean because the names can clash. And I agree coming up with better names is part of the solution but I have also explained that, because the conflict happens with functions, the changes are often disjoint. Person A found it reasonable to name their variables conn. At some point Person B found it reasonable to add a function named Plug.Test.conn/0. And now there is the ambiguity and a hard to debug issue due to the composition of two possibly good decisions. I believe that's why the issue became more apparent and more frequent as projects and the community grew. Another good solution to this problem would be to rely less on imports. But better names and less imports, although good practices, do not effectively solve the issue. You are correct in pointing out that the issue we are solving with this warning happens in rebinding. When you rebind a variable, you need to be careful of changing the meaning of later uses of that variable. My counter argument though is that I have a *variable* changing the meaning of a *variable* and since variables belong to the current scope only (and the scope rules got saner with time), it is simpler to grasp. That's different from a variable changing the meaning of a *function*. Which is harder to relate with. The more I explain this, the clearer it becomes to me variables and functions have no business in stepping on each other's namespaces. -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JHiNn3OeND62tj33Rn4XgMoA2B-enBwtiqnBENcsvt-A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
