diff options
author | Paul Phillips <paulp@improving.org> | 2013-05-03 10:15:10 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-05-03 11:36:37 -0700 |
commit | 80ac7d006350c0d60ff1b293ee955c3435288a9e (patch) | |
tree | 1cb3f2dfbec47cb1a966b7bc459907a14f937f1b /src/library/scala/collection/convert | |
parent | 6eb33d4ad15ae3548c21535de652ea246582a44f (diff) | |
download | scala-80ac7d006350c0d60ff1b293ee955c3435288a9e.tar.gz scala-80ac7d006350c0d60ff1b293ee955c3435288a9e.tar.bz2 scala-80ac7d006350c0d60ff1b293ee955c3435288a9e.zip |
Absolutized paths involving the scala package.
Confusing, now-it-happens now-it-doesn't mysteries lurk
in the darkness. When scala packages are declared like this:
package scala.collection.mutable
Then paths relative to scala can easily be broken via the unlucky
presence of an empty (or nonempty) directory. Example:
// a.scala
package scala.foo
class Bar { new util.Random }
% scalac ./a.scala
% mkdir util
% scalac ./a.scala
./a.scala:4: error: type Random is not a member of package util
new util.Random
^
one error found
There are two ways to play defense against this:
- don't use relative paths; okay sometimes, less so others
- don't "opt out" of the scala package
This commit mostly pursues the latter, with occasional doses
of the former.
I created a scratch directory containing these empty directories:
actors annotation ant api asm beans cmd collection compat
concurrent control convert docutil dtd duration event factory
forkjoin generic hashing immutable impl include internal io
logging macros man1 matching math meta model mutable nsc parallel
parsing partest persistent process pull ref reflect reify remote
runtime scalap scheduler script swing sys text threadpool tools
transform unchecked util xml
I stopped when I could compile the main src directories
even with all those empties on my classpath.
Diffstat (limited to 'src/library/scala/collection/convert')
7 files changed, 14 insertions, 7 deletions
diff --git a/src/library/scala/collection/convert/DecorateAsJava.scala b/src/library/scala/collection/convert/DecorateAsJava.scala index 7447c1bbaf..498bdc5943 100644 --- a/src/library/scala/collection/convert/DecorateAsJava.scala +++ b/src/library/scala/collection/convert/DecorateAsJava.scala @@ -6,7 +6,8 @@ ** |/ ** \* */ -package scala.collection +package scala +package collection package convert import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc } diff --git a/src/library/scala/collection/convert/DecorateAsScala.scala b/src/library/scala/collection/convert/DecorateAsScala.scala index 90e8dded6e..c724831c54 100644 --- a/src/library/scala/collection/convert/DecorateAsScala.scala +++ b/src/library/scala/collection/convert/DecorateAsScala.scala @@ -6,7 +6,8 @@ ** |/ ** \* */ -package scala.collection +package scala +package collection package convert import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc } diff --git a/src/library/scala/collection/convert/Decorators.scala b/src/library/scala/collection/convert/Decorators.scala index f004e4712b..d232fa04e1 100644 --- a/src/library/scala/collection/convert/Decorators.scala +++ b/src/library/scala/collection/convert/Decorators.scala @@ -6,7 +6,8 @@ ** |/ ** \* */ -package scala.collection +package scala +package collection package convert import java.{ util => ju } diff --git a/src/library/scala/collection/convert/WrapAsJava.scala b/src/library/scala/collection/convert/WrapAsJava.scala index 9665ffa045..e75a0e2981 100644 --- a/src/library/scala/collection/convert/WrapAsJava.scala +++ b/src/library/scala/collection/convert/WrapAsJava.scala @@ -6,7 +6,8 @@ ** |/ ** \* */ -package scala.collection +package scala +package collection package convert import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc } diff --git a/src/library/scala/collection/convert/WrapAsScala.scala b/src/library/scala/collection/convert/WrapAsScala.scala index f43eae10d6..d4ab451b0d 100644 --- a/src/library/scala/collection/convert/WrapAsScala.scala +++ b/src/library/scala/collection/convert/WrapAsScala.scala @@ -6,7 +6,8 @@ ** |/ ** \* */ -package scala.collection +package scala +package collection package convert import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc } diff --git a/src/library/scala/collection/convert/Wrappers.scala b/src/library/scala/collection/convert/Wrappers.scala index 69e9a8fff4..4410ddc7d8 100644 --- a/src/library/scala/collection/convert/Wrappers.scala +++ b/src/library/scala/collection/convert/Wrappers.scala @@ -6,7 +6,8 @@ ** |/ ** \* */ -package scala.collection +package scala +package collection package convert import java.{ lang => jl, util => ju }, java.util.{ concurrent => juc } diff --git a/src/library/scala/collection/convert/package.scala b/src/library/scala/collection/convert/package.scala index ea66101aca..13970f9a3e 100644 --- a/src/library/scala/collection/convert/package.scala +++ b/src/library/scala/collection/convert/package.scala @@ -6,7 +6,8 @@ ** |/ ** \* */ -package scala.collection +package scala +package collection package object convert { val decorateAsJava = new DecorateAsJava { } |