summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/fjbg.jar.desired.sha12
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala11
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/fjbg.jar.desired.sha1 b/lib/fjbg.jar.desired.sha1
index 74e9bc9f0d..968f6d8761 100644
--- a/lib/fjbg.jar.desired.sha1
+++ b/lib/fjbg.jar.desired.sha1
@@ -1 +1 @@
-99b0171bac02fd49774be2d59357c35ce8d0ba64 ?fjbg.jar
+c1b9d9705e894c62343bc67d0ef4138b9fadbc97 ?fjbg.jar
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
index 0a56f4daa6..3bc8d6ad10 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
@@ -389,8 +389,12 @@ abstract class GenJVM extends SubComponent {
attributes = attributes | JAccessFlags.ACC_VOLATILE
case _ => ();
}}
+ var flags = javaFlags(f.symbol)
+ /* if (!f.symbol.hasFlag(Flags.MUTABLE))
+ flags = flags | JAccessFlags.ACC_FINAL
+ */
val jfield =
- jclass.addNewField(javaFlags(f.symbol) | attributes,
+ jclass.addNewField(flags | attributes,
javaName(f.symbol),
javaType(f.symbol.tpe));
@@ -421,9 +425,10 @@ abstract class GenJVM extends SubComponent {
javaTypes(m.params map (_.kind)),
javaNames(m.params map (_.sym)));
- if (m.symbol.hasFlag(Flags.BRIDGE))
+ if (m.symbol.hasFlag(Flags.BRIDGE) && settings.target.value == "jvm-1.4") {
jmethod.addAttribute(fjbgContext.JOtherAttribute(jclass, jmethod, "Bridge",
new Array[Byte](0)))
+ }
if (remoteClass ||
(m.symbol.hasAttribute(RemoteAttr) && jmethod.isPublic() && !forCLDC)) {
val ainfo = AnnotationInfo(ThrowsAttr.tpe, List(new AnnotationArgument(Constant(RemoteException))), List())
@@ -1363,6 +1368,8 @@ abstract class GenJVM extends SubComponent {
&& !sym.isClassConstructor) ACC_FINAL else 0)
jf = jf | (if (isStaticSymbol(sym)) ACC_STATIC else 0)
jf = jf | (if (sym hasFlag Flags.ACCESSOR) ACC_SYNTHETIC else 0)
+ if (settings.target.value == "jvm-1.5")
+ jf = jf | (if (sym hasFlag Flags.BRIDGE) ACC_BRIDGE else 0)
jf
}