-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
conflicts caused by implicit using Base
and importall Base.Operators
#12183
Comments
ref #8113 |
Shouldn't it be the case that functions of Base should almost never be overridden? Overriding them silently seems bad. My vote goes to option one of the mitigation ideas. |
JeffBezanson
referenced
this issue
Jul 23, 2015
3 questions:
|
Not sure about answers to your questions. But this issue was resolved by #12235, I think. |
These questions go beyond this issue. Knowing the answers to these questions will help the development in other situations. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
If a module
M
exports a name that's also exported byBase
,using M
leads to the new warningWarning: both M and Base export "sin"; uses of it in module Main must be qualified
. This makes it very hard to make packages that override Base functions.One workaround is to use
import M.sin
instead ofusing
, however that fails for operators because of the implicitimportall Base.Operators
. You get for exampleWarning: ignoring conflicting import of M.+ into Main
.These warnings are great for usings and imports that are written explicitly, e.g. if you write
import A.x; import B.x
, but they're annoying in the case of the default imports.Some mitigation ideas:
importall Base.Operators
using Base
The text was updated successfully, but these errors were encountered: