diff options
author | schinz <schinz@epfl.ch> | 2003-03-04 13:03:03 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2003-03-04 13:03:03 +0000 |
commit | d382fa3fa45fe1d3f1e3f60d99f02a86ddb380fe (patch) | |
tree | 7dbd7ffccb0788d57717d94e34b30ba6a8553617 /sources/scalac/backend | |
parent | 208bd5ee9e8c25ea591e5d66578d6313df3671bf (diff) | |
download | scala-d382fa3fa45fe1d3f1e3f60d99f02a86ddb380fe.tar.gz scala-d382fa3fa45fe1d3f1e3f60d99f02a86ddb380fe.tar.bz2 scala-d382fa3fa45fe1d3f1e3f60d99f02a86ddb380fe.zip |
- bug fix: the new internal notation for Unit (...
- bug fix: the new internal notation for Unit (empty block) now works
- bug fix: generate correct code to access Java static members
Diffstat (limited to 'sources/scalac/backend')
-rw-r--r-- | sources/scalac/backend/jvm/GenJVM.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sources/scalac/backend/jvm/GenJVM.java b/sources/scalac/backend/jvm/GenJVM.java index d9257d6325..cafd3d10e6 100644 --- a/sources/scalac/backend/jvm/GenJVM.java +++ b/sources/scalac/backend/jvm/GenJVM.java @@ -223,7 +223,10 @@ class JVMGenerator { int statsNum = stats.length; for (int i = 0; i < statsNum - 1; ++i) gen(stats[i], cst.T_VOID); - gen(stats[stats.length - 1], expectedType, ctx); + if (statsNum == 0) + maybeLoadUnit(expectedType); + else + gen(stats[stats.length - 1], expectedType, ctx); generatedType = expectedType; } break; @@ -602,7 +605,9 @@ class JVMGenerator { } protected boolean isStaticMember(Symbol sym) { - return (sym.name != CONSTRUCTOR_NAME) && (sym.owner().isPackage()); + return (sym.name != CONSTRUCTOR_NAME) + && sym.owner().isModuleClass() + && sym.owner().isJava(); } protected boolean isPrimitive(Symbol sym) { @@ -1361,8 +1366,7 @@ class JVMGenerator { return JAVA_LANG_OBJECT; else { StringBuffer buf = new StringBuffer(sym.name.toString()); - if ((sym.isModule() || Modifiers.Helper.isModClass(sym.flags)) - && !sym.isPackage()) + if ((sym.isModule() || sym.isModuleClass()) && !sym.isJava()) buf.append('$'); for (sym = sym.owner(); !(sym.isAnonymousClass() || sym.isPackage()); |