summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2012-12-10 12:18:07 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2012-12-10 12:18:07 -0800
commit6f121da8902ea0b7a778f1ae1e690490330ba2ca (patch)
treec39f1a026eda50301e8661f36611ba8da9abf182 /src
parent287979d5173005501a699da1c115fbaf9fbffec2 (diff)
parente4d1d930693ac75d8eb64c2c3c69f2fc22bec739 (diff)
downloadscala-6f121da8902ea0b7a778f1ae1e690490330ba2ca.tar.gz
scala-6f121da8902ea0b7a778f1ae1e690490330ba2ca.tar.bz2
scala-6f121da8902ea0b7a778f1ae1e690490330ba2ca.zip
Merge pull request #1705 from paulp/warn-case-collision
Warn when generated classfiles differ only in case.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala
index 6eb05c4402..61f3721da1 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenASM.scala
@@ -160,7 +160,14 @@ abstract class GenASM extends SubComponent with BytecodeWriters {
}
// For predictably ordered error messages.
- var sortedClasses = classes.values.toList sortBy ("" + _.symbol.fullName)
+ var sortedClasses = classes.values.toList sortBy (_.symbol.fullName)
+
+ // Warn when classes will overwrite one another on case-insensitive systems.
+ for ((_, v1 :: v2 :: _) <- sortedClasses groupBy (_.symbol.javaClassName.toString.toLowerCase)) {
+ v1.cunit.warning(v1.symbol.pos,
+ s"Class ${v1.symbol.javaClassName} differs only in case from ${v2.symbol.javaClassName}. " +
+ "Such classes will overwrite one another on case-insensitive filesystems.")
+ }
debuglog("Created new bytecode generator for " + classes.size + " classes.")
val bytecodeWriter = initBytecodeWriter(sortedClasses filter isJavaEntryPoint)