Reputation: 78491
I'm using IntelliJ IDEA with the Scala plugin. If I reference HashMap in code, and then use Alt-Enter to add the import, the package gets imported as:
_root_.scala.collection.immutable.HashMap
What's the root part of this? It seems to work with and without it.
Upvotes: 50
Views: 14897
Reputation: 42240
It has to do scala imports being relative - _root_
gives you a way to specify an absolute package name. See the Scala Wiki
Upvotes: 51
Reputation: 411
The Scala language specification has this to say about _root_
in section 9.4 Package References
The special predefined name
_root_
refers to the outermost root package which contains all top-level packages.
See the following PDF for the full language reference: http://www.scala-lang.org/docu/files/ScalaReference.pdf
Upvotes: 8
Reputation: 56822
You would only need it if inside your current package you had a nested package scala.collection.immutable containing HashMap. This would be preferred by a relative import without the _root_ part.
Edit: That was not quite right, the problems start already if you have a scala package either as an ancestor or nested in the current package.
Upvotes: 7