Reworking import statements (proposal)
Piotr Tarsa <[email protected]> Wed, 13 Apr 2016 04:02:21 -0700 (PDT)
| Newsgroups | gmane.comp.lang.scala |
|---|---|
| Message-ID | <[email protected]> |
Hi, As of now relative imports (ie importing from something already imported) look exactly the same as absolute ones (ie where we're importing using full paths), except when explicitly starting from _root_. That is both confusing (where I have relative or absolute import? it's not immediately obvious) and ugly (the _root_ prefix is ugly). My proposal is to change import statements semantics to make things obvious: Current state: import _root_.outer.inner.Member - for absolute imports (usually used when there are name clashes) import outer.inner.Member - for absolute imports (usually used when there are no name clashes) import inner.Member - for relative imports import parameter.member - for importing from parameters Proposal for next Scala version: import _root_.outer.inner.Member - deprecate _root_ prefix import outer.inner.Member - leave as it is import inner.Member - deprecate this form of relative imports import _.inner.Member - introduce this syntax for relative imports import parameter.member - leave as it is And a version after that: import _root_.outer.inner.Member - drop support for _root_prefix import outer.inner.Member - keep it import inner.Member - drop support for this form of relative imports import _.inner.Member - keep it import parameter.member - keep it What do you think about it? Regards, Piotr Tarsa -- You received this message because you are subscribed to the Google Groups "scala-language" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.