> T.J. Usiyan <griotsp...@gmail.com> wrote:
>
> import Foo using (bar, Baz, qux, waldo as fred) // a "whitelist import"
> import Foo hiding (bar, Baz, qux, waldo as fred) // a "blacklist import"
>
> Is nice but `hiding… (waldo as fred)` is confusing. Am I hiding waldo?
You're right That's also what Robert pointed out in his reply. The way I
thought it is "hide waldo, naming it as fred instead." I like the symmetry of
it with the `import-using` statement, but true, it doesn't read well.
Hmm, given that keywords are still up in the air, why not s/hiding/except/?
Then we'd have:
import Foo using (bar, Baz, qux, waldo as fred) // a "whitelist import"
import Foo except (bar, Baz, qux, waldo as fred) // a "blacklist import"
The double meaning of "except" in the phrases "except X" (without X) and
"except X as Y" (everything else as is, but X as Y) would work.
And no one would write the silly sounding empty `import Foo except ()` anyway
because the plain `import Foo` works too.
> It is also strange to look in that list for things that I am hiding and
> things that I am importing. Context switches after the item that I am
> importing because `as` follows the item in question.
I'd say that's entirely ok. You could by convention e.g. keep a habit of
listing all renames together (in the end of the list, or in another
import-except statement), which could be checked by a linter if someone wanted.
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution