summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2010-04-30 00:37:43 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2010-04-30 00:37:43 +0000
commit660683929b6346d7a316273c145c677db7118e7d (patch)
tree5115150d7dbeadccd36c1fecc2468cf7f59763c9
parent394ae087a71ff1e50827373dc73830c0fe799e3b (diff)
downloadscala-660683929b6346d7a316273c145c677db7118e7d.tar.gz
scala-660683929b6346d7a316273c145c677db7118e7d.tar.bz2
scala-660683929b6346d7a316273c145c677db7118e7d.zip
Merged revisions 21747-21757 via svnmerge from
https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk ........ r21747 | odersky | 2010-04-29 15:12:20 +0200 (Thu, 29 Apr 2010) | 1 line Tightened variances check. Review by prokopec. ........ r21748 | prokopec | 2010-04-29 15:21:42 +0200 (Thu, 29 Apr 2010) | 1 line removed the dir info of the error messages. no review ........ r21749 | dragos | 2010-04-29 15:45:41 +0200 (Thu, 29 Apr 2010) | 1 line Allow inlining for straight-line methods. Closes #3357, #3099. no review. ........ r21750 | dragos | 2010-04-29 15:45:44 +0200 (Thu, 29 Apr 2010) | 2 lines Fixed misaligning due to wide (double|long) parameters in the icode reader. Improved constant folding through local variables. Closes #3191, no review. ........ r21751 | dragos | 2010-04-29 15:45:47 +0200 (Thu, 29 Apr 2010) | 1 line Reverted change that made partest fail with 'bin/javac: no such file' when JAVA_HOME was not set (instead of using the javac on the PATH). Reviewed by extempore, so no review. ........ r21752 | extempore | 2010-04-29 17:16:33 +0200 (Thu, 29 Apr 2010) | 2 lines Removes pointless reference queue from the Symbol cache. Closes #3370, no review. ........ r21753 | extempore | 2010-04-29 17:29:44 +0200 (Thu, 29 Apr 2010) | 3 lines Took advantage of the sophisticated abstractions available in ant to cut and paste the entirety of r21723 a little further down the build file. No review. ........ r21754 | dragos | 2010-04-29 18:35:09 +0200 (Thu, 29 Apr 2010) | 3 lines Regenerated FunctionN, AbstractFunctionN, etc. Changed AbstractFunction to properly specialize on primitive types (scala.Int, instead of scala.runtime.Int). Now closures should be indeed specialized. No review. ........ r21755 | dubochet | 2010-04-29 19:01:22 +0200 (Thu, 29 Apr 2010) | 1 line Closes #3310 (very large Scala class is compiled to invalid classfile because Scala signature can't fit into constant pool). Review by dragos. ........ r21756 | dubochet | 2010-04-29 19:32:03 +0200 (Thu, 29 Apr 2010) | 1 line [scaladoc] Closes #3302 (case class with private constructor). No review. ........ r21757 | phaller | 2010-04-30 00:15:18 +0200 (Fri, 30 Apr 2010) | 1 line Deprecated two members of RemoteActor which clearly should not be in the public API. Removed unnecessary casts. Some more complete doc comments. No review. ........
-rw-r--r--build.xml1
-rw-r--r--lib/fjbg.jar.desired.sha12
-rw-r--r--src/actors/scala/actors/Channel.scala9
-rw-r--r--src/actors/scala/actors/OutputChannel.scala4
-rw-r--r--src/actors/scala/actors/remote/Proxy.scala2
-rw-r--r--src/actors/scala/actors/remote/RemoteActor.scala16
-rw-r--r--src/build/genprod.scala8
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala23
-rw-r--r--src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala6
-rw-r--r--src/compiler/scala/tools/nsc/backend/opt/Inliners.scala2
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/Template.scala3
-rw-r--r--src/compiler/scala/tools/nsc/symtab/AnnotationInfos.scala11
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala1
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala45
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala6
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala3
-rw-r--r--src/fjbg/ch/epfl/lamp/fjbg/JConstantPool.java3
-rw-r--r--src/library/scala/Function0.scala2
-rw-r--r--src/library/scala/Function1.scala4
-rw-r--r--src/library/scala/Function10.scala2
-rw-r--r--src/library/scala/Function11.scala2
-rw-r--r--src/library/scala/Function12.scala2
-rw-r--r--src/library/scala/Function13.scala2
-rw-r--r--src/library/scala/Function14.scala2
-rw-r--r--src/library/scala/Function15.scala2
-rw-r--r--src/library/scala/Function16.scala2
-rw-r--r--src/library/scala/Function17.scala2
-rw-r--r--src/library/scala/Function18.scala2
-rw-r--r--src/library/scala/Function19.scala2
-rw-r--r--src/library/scala/Function2.scala4
-rw-r--r--src/library/scala/Function20.scala2
-rw-r--r--src/library/scala/Function21.scala2
-rw-r--r--src/library/scala/Function22.scala2
-rw-r--r--src/library/scala/Function3.scala2
-rw-r--r--src/library/scala/Function4.scala2
-rw-r--r--src/library/scala/Function5.scala2
-rw-r--r--src/library/scala/Function6.scala2
-rw-r--r--src/library/scala/Function7.scala2
-rw-r--r--src/library/scala/Function8.scala2
-rw-r--r--src/library/scala/Function9.scala2
-rw-r--r--src/library/scala/Product1.scala2
-rw-r--r--src/library/scala/Product10.scala2
-rw-r--r--src/library/scala/Product11.scala2
-rw-r--r--src/library/scala/Product12.scala2
-rw-r--r--src/library/scala/Product13.scala2
-rw-r--r--src/library/scala/Product14.scala2
-rw-r--r--src/library/scala/Product15.scala2
-rw-r--r--src/library/scala/Product16.scala2
-rw-r--r--src/library/scala/Product17.scala2
-rw-r--r--src/library/scala/Product18.scala2
-rw-r--r--src/library/scala/Product19.scala2
-rw-r--r--src/library/scala/Product2.scala2
-rw-r--r--src/library/scala/Product20.scala2
-rw-r--r--src/library/scala/Product21.scala2
-rw-r--r--src/library/scala/Product22.scala2
-rw-r--r--src/library/scala/Product3.scala2
-rw-r--r--src/library/scala/Product4.scala2
-rw-r--r--src/library/scala/Product5.scala2
-rw-r--r--src/library/scala/Product6.scala2
-rw-r--r--src/library/scala/Product7.scala2
-rw-r--r--src/library/scala/Product8.scala2
-rw-r--r--src/library/scala/Product9.scala2
-rw-r--r--src/library/scala/Symbol.scala5
-rw-r--r--src/library/scala/Tuple1.scala2
-rw-r--r--src/library/scala/Tuple10.scala2
-rw-r--r--src/library/scala/Tuple11.scala2
-rw-r--r--src/library/scala/Tuple12.scala2
-rw-r--r--src/library/scala/Tuple13.scala2
-rw-r--r--src/library/scala/Tuple14.scala2
-rw-r--r--src/library/scala/Tuple15.scala2
-rw-r--r--src/library/scala/Tuple16.scala2
-rw-r--r--src/library/scala/Tuple17.scala2
-rw-r--r--src/library/scala/Tuple18.scala2
-rw-r--r--src/library/scala/Tuple19.scala2
-rw-r--r--src/library/scala/Tuple2.scala2
-rw-r--r--src/library/scala/Tuple20.scala2
-rw-r--r--src/library/scala/Tuple21.scala2
-rw-r--r--src/library/scala/Tuple22.scala2
-rw-r--r--src/library/scala/Tuple3.scala2
-rw-r--r--src/library/scala/Tuple4.scala2
-rw-r--r--src/library/scala/Tuple5.scala2
-rw-r--r--src/library/scala/Tuple6.scala2
-rw-r--r--src/library/scala/Tuple7.scala2
-rw-r--r--src/library/scala/Tuple8.scala2
-rw-r--r--src/library/scala/Tuple9.scala2
-rw-r--r--src/library/scala/reflect/ScalaLongSignature.java13
-rw-r--r--src/library/scala/runtime/AbstractFunction0.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction1.scala4
-rw-r--r--src/library/scala/runtime/AbstractFunction10.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction11.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction12.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction13.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction14.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction15.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction16.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction17.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction18.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction19.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction2.scala4
-rw-r--r--src/library/scala/runtime/AbstractFunction20.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction21.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction22.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction3.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction4.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction5.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction6.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction7.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction8.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction9.scala2
-rw-r--r--src/partest/scala/tools/partest/Config.scala2
-rw-r--r--test/files/neg/variances.check5
-rw-r--r--test/files/neg/variances.scala8
112 files changed, 232 insertions, 134 deletions
diff --git a/build.xml b/build.xml
index 35e4889199..65ff3e684b 100644
--- a/build.xml
+++ b/build.xml
@@ -1116,6 +1116,7 @@ BOOTSTRAPPING BUILD (STRAP)
<compilationpath>
<pathelement location="${build-strap.dir}/classes/library"/>
<pathelement location="${build-strap.dir}/classes/compiler"/>
+ <pathelement location="${build-strap.dir}/classes/continuations-plugin"/>
</compilationpath>
</scalacfork>
<copy
diff --git a/lib/fjbg.jar.desired.sha1 b/lib/fjbg.jar.desired.sha1
index 04db587a17..ff2228066d 100644
--- a/lib/fjbg.jar.desired.sha1
+++ b/lib/fjbg.jar.desired.sha1
@@ -1 +1 @@
-bfbfc87845d5bb3402bac61f03734f362f6554b6 ?fjbg.jar
+06769295d0216cf44826d06eda7836c6358110a9 ?fjbg.jar
diff --git a/src/actors/scala/actors/Channel.scala b/src/actors/scala/actors/Channel.scala
index bf5d9261db..ae1e3029d1 100644
--- a/src/actors/scala/actors/Channel.scala
+++ b/src/actors/scala/actors/Channel.scala
@@ -58,8 +58,7 @@ class Channel[Msg](val receiver: Actor) extends InputChannel[Msg] with OutputCha
def receive[R](f: PartialFunction[Msg, R]): R = {
val C = this.asInstanceOf[Channel[Any]]
- val recvActor = receiver.asInstanceOf[Actor]
- recvActor.receive {
+ receiver.receive {
case C ! msg if (f.isDefinedAt(msg.asInstanceOf[Msg])) => f(msg.asInstanceOf[Msg])
}
}
@@ -70,8 +69,7 @@ class Channel[Msg](val receiver: Actor) extends InputChannel[Msg] with OutputCha
def receiveWithin[R](msec: Long)(f: PartialFunction[Any, R]): R = {
val C = this.asInstanceOf[Channel[Any]]
- val recvActor = receiver.asInstanceOf[Actor]
- recvActor.receiveWithin(msec) {
+ receiver.receiveWithin(msec) {
case C ! msg if (f.isDefinedAt(msg)) => f(msg)
case TIMEOUT => f(TIMEOUT)
}
@@ -86,8 +84,7 @@ class Channel[Msg](val receiver: Actor) extends InputChannel[Msg] with OutputCha
def reactWithin(msec: Long)(f: PartialFunction[Any, Unit]): Nothing = {
val C = this.asInstanceOf[Channel[Any]]
- val recvActor = receiver.asInstanceOf[Actor]
- recvActor.reactWithin(msec) {
+ receiver.reactWithin(msec) {
case C ! msg if (f.isDefinedAt(msg)) => f(msg)
case TIMEOUT => f(TIMEOUT)
}
diff --git a/src/actors/scala/actors/OutputChannel.scala b/src/actors/scala/actors/OutputChannel.scala
index 5f99f57ecf..291117bf71 100644
--- a/src/actors/scala/actors/OutputChannel.scala
+++ b/src/actors/scala/actors/OutputChannel.scala
@@ -22,6 +22,8 @@ trait OutputChannel[-Msg] {
/**
* Sends <code>msg</code> to this $actor (asynchronous).
+ *
+ * @param msg the message to send
*/
def !(msg: Msg): Unit
@@ -36,6 +38,8 @@ trait OutputChannel[-Msg] {
/**
* Forwards <code>msg</code> to this $actor (asynchronous).
+ *
+ * @param msg the message to forward
*/
def forward(msg: Msg): Unit
diff --git a/src/actors/scala/actors/remote/Proxy.scala b/src/actors/scala/actors/remote/Proxy.scala
index ac5951ed85..3607e6e62d 100644
--- a/src/actors/scala/actors/remote/Proxy.scala
+++ b/src/actors/scala/actors/remote/Proxy.scala
@@ -42,7 +42,7 @@ private[remote] class Proxy(node: Node, name: Symbol, @transient var kernel: Net
}
private def setupKernel() {
- kernel = RemoteActor.someKernel
+ kernel = RemoteActor.someNetKernel
kernel.registerProxy(node, name, this)
}
diff --git a/src/actors/scala/actors/remote/RemoteActor.scala b/src/actors/scala/actors/remote/RemoteActor.scala
index 78361ec0fb..4e544665c0 100644
--- a/src/actors/scala/actors/remote/RemoteActor.scala
+++ b/src/actors/scala/actors/remote/RemoteActor.scala
@@ -57,10 +57,10 @@ object RemoteActor {
* <code>port</code>.
*/
def alive(port: Int): Unit = synchronized {
- createKernelOnPort(port)
+ createNetKernelOnPort(port)
}
- def createKernelOnPort(port: Int): NetKernel = {
+ private def createNetKernelOnPort(port: Int): NetKernel = {
val serv = TcpService(port, cl)
val kern = serv.kernel
val s = Actor.self
@@ -82,6 +82,10 @@ object RemoteActor {
kern
}
+ @deprecated("this member is going to be removed in a future release")
+ def createKernelOnPort(port: Int): NetKernel =
+ createNetKernelOnPort(port)
+
/**
* Registers <code>a</code> under <code>name</code> on this
* node.
@@ -102,7 +106,7 @@ object RemoteActor {
case None =>
// establish remotely accessible
// return path (sender)
- createKernelOnPort(TcpService.generatePort)
+ createNetKernelOnPort(TcpService.generatePort)
case Some(k) =>
k
}
@@ -115,8 +119,12 @@ object RemoteActor {
selfKernel.getOrCreateProxy(node, sym)
}
- def someKernel: NetKernel =
+ private[remote] def someNetKernel: NetKernel =
kernels.valuesIterator.next
+
+ @deprecated("this member is going to be removed in a future release")
+ def someKernel: NetKernel =
+ someNetKernel
}
diff --git a/src/build/genprod.scala b/src/build/genprod.scala
index 8217ce3c3b..f12f98b569 100644
--- a/src/build/genprod.scala
+++ b/src/build/genprod.scala
@@ -133,8 +133,8 @@ object FunctionZero extends Function(0) {
}
object FunctionOne extends Function(1) {
- override def contravariantSpecs = "@specialized(Int, Long, Double) "
- override def covariantSpecs = "@specialized(Unit, Boolean, Int, Long, Double) "
+ override def contravariantSpecs = "@specialized(scala.Int, scala.Long, scala.Float, scala.Double) "
+ override def covariantSpecs = "@specialized(scala.Unit, scala.Boolean, scala.Int, scala.Float, scala.Long, scala.Double) "
override def descriptiveComment = functionNTemplate.format("succ", "anonfun1",
""" *
@@ -159,8 +159,8 @@ object FunctionOne extends Function(1) {
}
object FunctionTwo extends Function(2) {
- override def contravariantSpecs = "@specialized(Int, Long, Double) "
- override def covariantSpecs = "@specialized(Unit, Boolean, Int, Long, Double) "
+ override def contravariantSpecs = "@specialized(scala.Int, scala.Long, scala.Double) "
+ override def covariantSpecs = "@specialized(scala.Unit, scala.Boolean, scala.Int, scala.Float, scala.Long, scala.Double) "
override def descriptiveComment = functionNTemplate.format("max", "anonfun2",
""" *
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
index dc193b03db..2b4878a93b 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
@@ -163,10 +163,10 @@ abstract class GenJVM extends SubComponent {
fjbgContext.JOtherAttribute(jclass, jclass, nme.ScalaSignatureATTR.toString,
versionPickle.bytes, versionPickle.writeIndex)
jclass.addAttribute(scalaAttr)
- val scalaAnnot =
- AnnotationInfo(definitions.ScalaSignatureAnnotation.tpe, Nil, List(
- (nme.bytes, ScalaSigBytes(pickle.bytes.take(pickle.writeIndex)))
- ))
+ val scalaAnnot = {
+ val sigBytes = ScalaSigBytes(pickle.bytes.take(pickle.writeIndex))
+ AnnotationInfo(sigBytes.sigAnnot, Nil, List((nme.bytes, sigBytes)))
+ }
pickledBytes = pickledBytes + pickle.writeIndex
currentRun.symData -= sym
currentRun.symData -= sym.companionSymbol
@@ -416,9 +416,20 @@ abstract class GenJVM extends SubComponent {
buf.putShort(cpool.addUtf8(const.symbolValue.name.toString).toShort)
}
- case ScalaSigBytes(bytes) =>
+ case sb@ScalaSigBytes(bytes) if (!sb.isLong) =>
buf.put('s'.toByte)
- buf.putShort(cpool.addUtf8(reflect.generic.ByteCodecs.encode(bytes)).toShort)
+ buf.putShort(cpool.addUtf8(sb.encodedBytes).toShort)
+
+ case sb@ScalaSigBytes(bytes) if (sb.isLong) =>
+ buf.put('['.toByte)
+ val stringCount = (sb.encodedBytes.length / 65534) + 1
+ buf.putShort(stringCount.toShort)
+ for (i <- 0 until stringCount) {
+ buf.put('s'.toByte)
+ val j = i * 65535
+ val string = sb.encodedBytes.slice(j, j + 65535)
+ buf.putShort(cpool.addUtf8(string).toShort)
+ }
case ArrayAnnotArg(args) =>
buf.put('['.toByte)
diff --git a/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala b/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala
index 7311978147..fedf0d4143 100644
--- a/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala
+++ b/src/compiler/scala/tools/nsc/backend/opt/ClosureElimination.scala
@@ -110,11 +110,7 @@ abstract class ClosureElimination extends SubComponent {
case LOAD_LOCAL(l) if (info.bindings.isDefinedAt(LocalVar(l))) =>
val t = info.getBinding(l)
t match {
- case Deref(LocalVar(v)) =>
- bb.replaceInstruction(i, valueToInstruction(t));
- log("replaced " + i + " with " + t)
-
- case Deref(This) =>
+ case Deref(LocalVar(_)) | Deref(This) | Const(_) =>
bb.replaceInstruction(i, valueToInstruction(t));
log("replaced " + i + " with " + t)
diff --git a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
index cb87301b6a..dc1ac8e844 100644
--- a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
+++ b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala
@@ -523,7 +523,7 @@ abstract class Inliners extends SubComponent {
var score = 0
if (callee.code.blocks.length <= SMALL_METHOD_SIZE) score = score + 1
if (caller.code.blocks.length <= SMALL_METHOD_SIZE
- && ((caller.code.blocks.length + callee.code.blocks.length) > SMALL_METHOD_SIZE)) {
+ && ((caller.code.blocks.length + callee.code.blocks.length - 1) > SMALL_METHOD_SIZE)) {
score -= 1
if (settings.debug.value)
log("shouldInline: score decreased to " + score + " because small " + caller + " would become large")
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
index 12d24a7953..72cfd9c662 100644
--- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
@@ -347,7 +347,8 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
vlsss map { vlss => <span class="params">({implicitCheck(vlss) ++ params0(vlss) })</span> }
}
mbr match {
- case cls: Class if cls.isCaseClass => paramsToHtml(cls.primaryConstructor.get.valueParams)
+ case cls: Class if cls.isCaseClass && cls.primaryConstructor.isDefined =>
+ paramsToHtml(cls.primaryConstructor.get.valueParams)
case ctr: Constructor => paramsToHtml(ctr.valueParams)
case dfe: Def => paramsToHtml(dfe.valueParams)
case _ => NodeSeq.Empty
diff --git a/src/compiler/scala/tools/nsc/symtab/AnnotationInfos.scala b/src/compiler/scala/tools/nsc/symtab/AnnotationInfos.scala
index efb68c4873..edc87108b4 100644
--- a/src/compiler/scala/tools/nsc/symtab/AnnotationInfos.scala
+++ b/src/compiler/scala/tools/nsc/symtab/AnnotationInfos.scala
@@ -45,9 +45,16 @@ trait AnnotationInfos extends reflect.generic.AnnotationInfos { self: SymbolTabl
/** A specific annotation argument that encodes an array of bytes as an array of `Long`. The type of the argument
* declared in the annotation must be `String`. This specialised class is used to encode scala signatures for
* reasons of efficiency, both in term of class-file size and in term of compiler performance. */
- case class ScalaSigBytes(bytes: Array[Byte])
- extends ClassfileAnnotArg {
+ case class ScalaSigBytes(bytes: Array[Byte]) extends ClassfileAnnotArg {
override def toString = (bytes map { byte => (byte & 0xff).toHexString }).mkString("[ ", " ", " ]")
+ lazy val encodedBytes =
+ reflect.generic.ByteCodecs.encode(bytes)
+ def isLong: Boolean = (encodedBytes.length > 65535)
+ def sigAnnot: Type =
+ if (this.isLong)
+ definitions.ScalaLongSignatureAnnotation.tpe
+ else
+ definitions.ScalaSignatureAnnotation.tpe
}
object ScalaSigBytes extends ScalaSigBytesExtractor
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index db48189b6b..ed26ebac03 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -243,6 +243,7 @@ trait Definitions extends reflect.generic.StandardDefinitions {
def Code_lift = getMember(CodeModule, nme.lift_)
lazy val ScalaSignatureAnnotation = getClass("scala.reflect.ScalaSignature")
+ lazy val ScalaLongSignatureAnnotation = getClass("scala.reflect.ScalaLongSignature")
// invoke dynamic support
lazy val LinkageModule = getModule("java.dyn.Linkage")
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index fc635874a6..7cd32ff81e 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -377,6 +377,26 @@ abstract class ClassfileParser {
value
}
+ def getBytes(indices: List[Int]): Array[Byte] = {
+ assert(!indices.isEmpty)
+ var value = values(indices.head).asInstanceOf[Array[Byte]]
+ if (value eq null) {
+ val bytesBuffer = ArrayBuffer.empty[Byte]
+ for (index <- indices) {
+ if (index <= 0 || ConstantPool.this.len <= index) errorBadIndex(index)
+ val start = starts(index)
+ if (in.buf(start).toInt != CONSTANT_UTF8) errorBadTag(start)
+ val len = in.getChar(start + 1)
+ bytesBuffer ++= (in.buf, start + 3, len)
+ }
+ val bytes = bytesBuffer.toArray
+ val decodedLength = reflect.generic.ByteCodecs.decode(bytes)
+ value = bytes.take(decodedLength)
+ values(indices.head) = value
+ }
+ value
+ }
+
/** Throws an exception signaling a bad constant index. */
private def errorBadIndex(index: Int) =
throw new RuntimeException("bad constant pool index: " + index + " at pos: " + in.bp)
@@ -923,6 +943,24 @@ abstract class ClassfileParser {
Some(ScalaSigBytes(pool.getBytes(in.nextChar)))
}
+ def parseScalaLongSigBytes: Option[ScalaSigBytes] = try {
+ val tag = in.nextByte.toChar
+ assert(tag == ARRAY_TAG)
+ val stringCount = in.nextChar
+ val entries =
+ for (i <- 0 until stringCount) yield {
+ val stag = in.nextByte.toChar
+ assert(stag == STRING_TAG)
+ in.nextChar.toInt
+ }
+ Some(ScalaSigBytes(pool.getBytes(entries.toList)))
+ }
+ catch {
+ case e: Throwable =>
+ e.printStackTrace
+ throw e
+ }
+
/** Parse and return a single annotation. If it is malformed,
* return None.
*/
@@ -941,6 +979,11 @@ abstract class ClassfileParser {
case Some(c) => nvpairs += ((name, c))
case None => hasError = true
}
+ else if ((attrType == definitions.ScalaLongSignatureAnnotation.tpe) && (name == nme.bytes))
+ parseScalaLongSigBytes match {
+ case Some(c) => nvpairs += ((name, c))
+ case None => hasError = true
+ }
else
parseAnnotArg match {
case Some(c) => nvpairs += ((name, c))
@@ -981,6 +1024,8 @@ abstract class ClassfileParser {
parseAnnotation(in.nextChar) match {
case Some(scalaSig) if (scalaSig.atp == definitions.ScalaSignatureAnnotation.tpe) =>
scalaSigAnnot = Some(scalaSig)
+ case Some(scalaSig) if (scalaSig.atp == definitions.ScalaLongSignatureAnnotation.tpe) =>
+ scalaSigAnnot = Some(scalaSig)
case Some(annot) =>
sym.addAnnotation(annot)
case None =>
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
index e129737ebd..23f45e0d13 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
@@ -614,9 +614,9 @@ abstract class ICodeReader extends ClassfileParser {
// add parameters
var idx = if (method.isStatic) 0 else 1
- for (t <- method.symbol.tpe.paramTypes) {
- this.method.addParam(code.enterParam(idx, toTypeKind(t)))
- idx += 1
+ for (t <- method.symbol.tpe.paramTypes; val kind = toTypeKind(t)) {
+ this.method.addParam(code.enterParam(idx, kind))
+ idx += (if (kind.isWideType) 2 else 1)
}
pc = 0
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index bd8482cd67..ea4109bd3a 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -593,7 +593,8 @@ abstract class RefChecks extends InfoTransform {
case SingleType(pre, sym) =>
validateVariance(pre, variance)
case TypeRef(pre, sym, args) =>
- if (sym.isAliasType && relativeVariance(sym) == AnyVariance)
+// println("validate "+sym+" at "+relativeVariance(sym))
+ if (sym.isAliasType/* && relativeVariance(sym) == AnyVariance*/)
validateVariance(tp.normalize, variance)
else if (sym.variance != NoVariance) {
val v = relativeVariance(sym)
diff --git a/src/fjbg/ch/epfl/lamp/fjbg/JConstantPool.java b/src/fjbg/ch/epfl/lamp/fjbg/JConstantPool.java
index 4fa048177c..0e6b43f1e2 100644
--- a/src/fjbg/ch/epfl/lamp/fjbg/JConstantPool.java
+++ b/src/fjbg/ch/epfl/lamp/fjbg/JConstantPool.java
@@ -383,6 +383,9 @@ public class JConstantPool {
public int getSize() { return 1; }
public void writeContentsTo(DataOutputStream stream) throws IOException {
if (bytes != null) {
+ if (bytes.length > 65535) {
+ throw new IOException("String literal of length " + bytes.length + " does not fit in Classfile");
+ }
stream.writeShort(bytes.length);
stream.write(bytes);
}
diff --git a/src/library/scala/Function0.scala b/src/library/scala/Function0.scala
index 867c7bc536..a946c3ad13 100644
--- a/src/library/scala/Function0.scala
+++ b/src/library/scala/Function0.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with fancy comment)
package scala
diff --git a/src/library/scala/Function1.scala b/src/library/scala/Function1.scala
index a5780f561a..418bb4bdbf 100644
--- a/src/library/scala/Function1.scala
+++ b/src/library/scala/Function1.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with fancy comment) (with extra methods)
package scala
@@ -36,7 +36,7 @@ package scala
* println(anonfun1(0))
* }</pre>
*/
-trait Function1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Boolean, Int, Long, Double) +R] extends AnyRef { self =>
+trait Function1[@specialized(scala.Int, scala.Long, scala.Float, scala.Double) -T1, @specialized(scala.Unit, scala.Boolean, scala.Int, scala.Float, scala.Long, scala.Double) +R] extends AnyRef { self =>
def apply(v1:T1): R
override def toString() = "<function1>"
diff --git a/src/library/scala/Function10.scala b/src/library/scala/Function10.scala
index 967d58fa35..9435d65dd7 100644
--- a/src/library/scala/Function10.scala
+++ b/src/library/scala/Function10.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function11.scala b/src/library/scala/Function11.scala
index 5d6065ea1c..1d0e3cd1e5 100644
--- a/src/library/scala/Function11.scala
+++ b/src/library/scala/Function11.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function12.scala b/src/library/scala/Function12.scala
index a262e2d8f7..4ca33acdb0 100644
--- a/src/library/scala/Function12.scala
+++ b/src/library/scala/Function12.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function13.scala b/src/library/scala/Function13.scala
index 6b1d0788fb..d128d396da 100644
--- a/src/library/scala/Function13.scala
+++ b/src/library/scala/Function13.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function14.scala b/src/library/scala/Function14.scala
index 75b0d25f5e..d9adef9374 100644
--- a/src/library/scala/Function14.scala
+++ b/src/library/scala/Function14.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function15.scala b/src/library/scala/Function15.scala
index c66015d2aa..dbe1cf870a 100644
--- a/src/library/scala/Function15.scala
+++ b/src/library/scala/Function15.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function16.scala b/src/library/scala/Function16.scala
index 5b6968c106..72f8eff82b 100644
--- a/src/library/scala/Function16.scala
+++ b/src/library/scala/Function16.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function17.scala b/src/library/scala/Function17.scala
index 74321b950b..523a35c70d 100644
--- a/src/library/scala/Function17.scala
+++ b/src/library/scala/Function17.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function18.scala b/src/library/scala/Function18.scala
index 4cb1540161..df68bafee7 100644
--- a/src/library/scala/Function18.scala
+++ b/src/library/scala/Function18.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function19.scala b/src/library/scala/Function19.scala
index 337b9c4837..609aeaa1fe 100644
--- a/src/library/scala/Function19.scala
+++ b/src/library/scala/Function19.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function2.scala b/src/library/scala/Function2.scala
index 44c4e358b8..b8cbe19881 100644
--- a/src/library/scala/Function2.scala
+++ b/src/library/scala/Function2.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with fancy comment) (with extra methods)
package scala
@@ -36,7 +36,7 @@ package scala
* println(anonfun2(0, 1))
* }</pre>
*/
-trait Function2[@specialized(Int, Long, Double) -T1, @specialized(Int, Long, Double) -T2, @specialized(Unit, Boolean, Int, Long, Double) +R] extends AnyRef { self =>
+trait Function2[@specialized(scala.Int, scala.Long, scala.Double) -T1, @specialized(scala.Int, scala.Long, scala.Double) -T2, @specialized(scala.Unit, scala.Boolean, scala.Int, scala.Float, scala.Long, scala.Double) +R] extends AnyRef { self =>
def apply(v1:T1,v2:T2): R
override def toString() = "<function2>"
diff --git a/src/library/scala/Function20.scala b/src/library/scala/Function20.scala
index d381d2d82e..f84649d4d5 100644
--- a/src/library/scala/Function20.scala
+++ b/src/library/scala/Function20.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function21.scala b/src/library/scala/Function21.scala
index b78fd96dd3..ef8095aebd 100644
--- a/src/library/scala/Function21.scala
+++ b/src/library/scala/Function21.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function22.scala b/src/library/scala/Function22.scala
index 2322a24e9d..a3347e996f 100644
--- a/src/library/scala/Function22.scala
+++ b/src/library/scala/Function22.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function3.scala b/src/library/scala/Function3.scala
index 82858c356f..5f1c289853 100644
--- a/src/library/scala/Function3.scala
+++ b/src/library/scala/Function3.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function4.scala b/src/library/scala/Function4.scala
index c97c00eb0c..664b75fb40 100644
--- a/src/library/scala/Function4.scala
+++ b/src/library/scala/Function4.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function5.scala b/src/library/scala/Function5.scala
index fb798741ea..94aba5eb9c 100644
--- a/src/library/scala/Function5.scala
+++ b/src/library/scala/Function5.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function6.scala b/src/library/scala/Function6.scala
index 02a2bd4fb7..297f3e074e 100644
--- a/src/library/scala/Function6.scala
+++ b/src/library/scala/Function6.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function7.scala b/src/library/scala/Function7.scala
index 7973bcb87c..bc053f7838 100644
--- a/src/library/scala/Function7.scala
+++ b/src/library/scala/Function7.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function8.scala b/src/library/scala/Function8.scala
index 32929db9d6..d645a8d695 100644
--- a/src/library/scala/Function8.scala
+++ b/src/library/scala/Function8.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function9.scala b/src/library/scala/Function9.scala
index 490e44c39b..e220537708 100644
--- a/src/library/scala/Function9.scala
+++ b/src/library/scala/Function9.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Product1.scala b/src/library/scala/Product1.scala
index af9a7eca20..2e57b85104 100644
--- a/src/library/scala/Product1.scala
+++ b/src/library/scala/Product1.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product10.scala b/src/library/scala/Product10.scala
index d6745d62ad..7452e242ea 100644
--- a/src/library/scala/Product10.scala
+++ b/src/library/scala/Product10.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product11.scala b/src/library/scala/Product11.scala
index 83cf5f0e55..e105393934 100644
--- a/src/library/scala/Product11.scala
+++ b/src/library/scala/Product11.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product12.scala b/src/library/scala/Product12.scala
index 845bba720d..bf2b9437ec 100644
--- a/src/library/scala/Product12.scala
+++ b/src/library/scala/Product12.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product13.scala b/src/library/scala/Product13.scala
index 374b457789..2278f96dd9 100644
--- a/src/library/scala/Product13.scala
+++ b/src/library/scala/Product13.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product14.scala b/src/library/scala/Product14.scala
index 93bb53339d..e194d36822 100644
--- a/src/library/scala/Product14.scala
+++ b/src/library/scala/Product14.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product15.scala b/src/library/scala/Product15.scala
index 71cefbafc5..a2bc70b6ce 100644
--- a/src/library/scala/Product15.scala
+++ b/src/library/scala/Product15.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product16.scala b/src/library/scala/Product16.scala
index aa87c9f40b..5ee44729ec 100644
--- a/src/library/scala/Product16.scala
+++ b/src/library/scala/Product16.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product17.scala b/src/library/scala/Product17.scala
index 7caa99a578..c1146b18cf 100644
--- a/src/library/scala/Product17.scala
+++ b/src/library/scala/Product17.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product18.scala b/src/library/scala/Product18.scala
index ca0b168c83..40ddcdd7d6 100644
--- a/src/library/scala/Product18.scala
+++ b/src/library/scala/Product18.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product19.scala b/src/library/scala/Product19.scala
index 88256c44fd..1b1edf6498 100644
--- a/src/library/scala/Product19.scala
+++ b/src/library/scala/Product19.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product2.scala b/src/library/scala/Product2.scala
index 6ce804fc89..0430341f78 100644
--- a/src/library/scala/Product2.scala
+++ b/src/library/scala/Product2.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product20.scala b/src/library/scala/Product20.scala
index b9aab6988d..497d7a6796 100644
--- a/src/library/scala/Product20.scala
+++ b/src/library/scala/Product20.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product21.scala b/src/library/scala/Product21.scala
index 9ab61d35ca..5fd0d269f8 100644
--- a/src/library/scala/Product21.scala
+++ b/src/library/scala/Product21.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product22.scala b/src/library/scala/Product22.scala
index 86fbaeca7f..998ced16aa 100644
--- a/src/library/scala/Product22.scala
+++ b/src/library/scala/Product22.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product3.scala b/src/library/scala/Product3.scala
index 09044716a4..d54b179806 100644
--- a/src/library/scala/Product3.scala
+++ b/src/library/scala/Product3.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product4.scala b/src/library/scala/Product4.scala
index c6a5c74bb5..c24b013124 100644
--- a/src/library/scala/Product4.scala
+++ b/src/library/scala/Product4.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product5.scala b/src/library/scala/Product5.scala
index 147fb2d305..de73d2b797 100644
--- a/src/library/scala/Product5.scala
+++ b/src/library/scala/Product5.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product6.scala b/src/library/scala/Product6.scala
index f967992e5e..41b9fac951 100644
--- a/src/library/scala/Product6.scala
+++ b/src/library/scala/Product6.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product7.scala b/src/library/scala/Product7.scala
index c7a9baef98..8137978f2b 100644
--- a/src/library/scala/Product7.scala
+++ b/src/library/scala/Product7.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product8.scala b/src/library/scala/Product8.scala
index 8663b0868b..c23b50a330 100644
--- a/src/library/scala/Product8.scala
+++ b/src/library/scala/Product8.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Product9.scala b/src/library/scala/Product9.scala
index 8d2de090ab..09a7b210c3 100644
--- a/src/library/scala/Product9.scala
+++ b/src/library/scala/Product9.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Symbol.scala b/src/library/scala/Symbol.scala
index a6d6f1e21f..0c347b07b9 100644
--- a/src/library/scala/Symbol.scala
+++ b/src/library/scala/Symbol.scala
@@ -48,11 +48,10 @@ object Symbol extends UniquenessCache[String, Symbol]
* abstracted to offer some hope of reusability. */
private[scala] abstract class UniquenessCache[K, V >: Null]
{
- import java.lang.ref.{ ReferenceQueue, WeakReference }
+ import java.lang.ref.WeakReference
import java.util.WeakHashMap
import java.util.concurrent.locks.ReentrantReadWriteLock
- private val queue = new ReferenceQueue[V]
private val rwl = new ReentrantReadWriteLock()
private val rlock = rwl.readLock
private val wlock = rwl.writeLock
@@ -78,7 +77,7 @@ private[scala] abstract class UniquenessCache[K, V >: Null]
if (res != null) res
else {
val sym = valueFromKey(name)
- map.put(name, new WeakReference(sym, queue))
+ map.put(name, new WeakReference(sym))
sym
}
}
diff --git a/src/library/scala/Tuple1.scala b/src/library/scala/Tuple1.scala
index d8f8126f42..2fef979510 100644
--- a/src/library/scala/Tuple1.scala
+++ b/src/library/scala/Tuple1.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple10.scala b/src/library/scala/Tuple10.scala
index 11889b3485..18f9dd6766 100644
--- a/src/library/scala/Tuple10.scala
+++ b/src/library/scala/Tuple10.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple11.scala b/src/library/scala/Tuple11.scala
index b44141c1ee..94880ce240 100644
--- a/src/library/scala/Tuple11.scala
+++ b/src/library/scala/Tuple11.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple12.scala b/src/library/scala/Tuple12.scala
index 37a172e74f..fa0c1128d9 100644
--- a/src/library/scala/Tuple12.scala
+++ b/src/library/scala/Tuple12.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple13.scala b/src/library/scala/Tuple13.scala
index 68d4a5aa8f..c858a42d29 100644
--- a/src/library/scala/Tuple13.scala
+++ b/src/library/scala/Tuple13.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple14.scala b/src/library/scala/Tuple14.scala
index 424beb040e..cdeecb36f9 100644
--- a/src/library/scala/Tuple14.scala
+++ b/src/library/scala/Tuple14.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple15.scala b/src/library/scala/Tuple15.scala
index 944ff9d1b5..316edff038 100644
--- a/src/library/scala/Tuple15.scala
+++ b/src/library/scala/Tuple15.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple16.scala b/src/library/scala/Tuple16.scala
index 276220fbf5..3ad584da11 100644
--- a/src/library/scala/Tuple16.scala
+++ b/src/library/scala/Tuple16.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple17.scala b/src/library/scala/Tuple17.scala
index d965ca8504..176022e4cc 100644
--- a/src/library/scala/Tuple17.scala
+++ b/src/library/scala/Tuple17.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple18.scala b/src/library/scala/Tuple18.scala
index 77cc635034..96a9736e14 100644
--- a/src/library/scala/Tuple18.scala
+++ b/src/library/scala/Tuple18.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple19.scala b/src/library/scala/Tuple19.scala
index 540aaa3893..428103ef14 100644
--- a/src/library/scala/Tuple19.scala
+++ b/src/library/scala/Tuple19.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple2.scala b/src/library/scala/Tuple2.scala
index ee2fe84482..5dec39a79b 100644
--- a/src/library/scala/Tuple2.scala
+++ b/src/library/scala/Tuple2.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Tuple20.scala b/src/library/scala/Tuple20.scala
index 58e7018518..bbfdaf3d8e 100644
--- a/src/library/scala/Tuple20.scala
+++ b/src/library/scala/Tuple20.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple21.scala b/src/library/scala/Tuple21.scala
index e302bfbd80..ecb02f6558 100644
--- a/src/library/scala/Tuple21.scala
+++ b/src/library/scala/Tuple21.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple22.scala b/src/library/scala/Tuple22.scala
index 2fd4fc7166..31d46b7bf2 100644
--- a/src/library/scala/Tuple22.scala
+++ b/src/library/scala/Tuple22.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple3.scala b/src/library/scala/Tuple3.scala
index e6464cf52c..ced364f29d 100644
--- a/src/library/scala/Tuple3.scala
+++ b/src/library/scala/Tuple3.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Tuple4.scala b/src/library/scala/Tuple4.scala
index 55cfae2c03..388e289647 100644
--- a/src/library/scala/Tuple4.scala
+++ b/src/library/scala/Tuple4.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple5.scala b/src/library/scala/Tuple5.scala
index ec52ee039e..b2fb4d23a3 100644
--- a/src/library/scala/Tuple5.scala
+++ b/src/library/scala/Tuple5.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple6.scala b/src/library/scala/Tuple6.scala
index 5f41c1de2a..2849e7222d 100644
--- a/src/library/scala/Tuple6.scala
+++ b/src/library/scala/Tuple6.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple7.scala b/src/library/scala/Tuple7.scala
index 0e2315c573..c19232eeb2 100644
--- a/src/library/scala/Tuple7.scala
+++ b/src/library/scala/Tuple7.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple8.scala b/src/library/scala/Tuple8.scala
index 58b2e13af8..a6d02c5030 100644
--- a/src/library/scala/Tuple8.scala
+++ b/src/library/scala/Tuple8.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/Tuple9.scala b/src/library/scala/Tuple9.scala
index 360228cb68..9349695f42 100644
--- a/src/library/scala/Tuple9.scala
+++ b/src/library/scala/Tuple9.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala
diff --git a/src/library/scala/reflect/ScalaLongSignature.java b/src/library/scala/reflect/ScalaLongSignature.java
new file mode 100644
index 0000000000..1ffd6d2520
--- /dev/null
+++ b/src/library/scala/reflect/ScalaLongSignature.java
@@ -0,0 +1,13 @@
+package scala.reflect;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+public @interface ScalaLongSignature {
+ public String[] bytes();
+}
diff --git a/src/library/scala/runtime/AbstractFunction0.scala b/src/library/scala/runtime/AbstractFunction0.scala
index a9e564f6f8..386091b818 100644
--- a/src/library/scala/runtime/AbstractFunction0.scala
+++ b/src/library/scala/runtime/AbstractFunction0.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction1.scala b/src/library/scala/runtime/AbstractFunction1.scala
index 0a8a754236..64945e9f51 100644
--- a/src/library/scala/runtime/AbstractFunction1.scala
+++ b/src/library/scala/runtime/AbstractFunction1.scala
@@ -8,12 +8,12 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
-abstract class AbstractFunction1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Boolean, Int, Long, Double) +R] extends Function1[T1, R] {
+abstract class AbstractFunction1[@specialized(scala.Int, scala.Long, scala.Float, scala.Double) -T1, @specialized(scala.Unit, scala.Boolean, scala.Int, scala.Float, scala.Long, scala.Double) +R] extends Function1[T1, R] {
}
diff --git a/src/library/scala/runtime/AbstractFunction10.scala b/src/library/scala/runtime/AbstractFunction10.scala
index 0830054e1a..d6f6a225c9 100644
--- a/src/library/scala/runtime/AbstractFunction10.scala
+++ b/src/library/scala/runtime/AbstractFunction10.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction11.scala b/src/library/scala/runtime/AbstractFunction11.scala
index 6ee68126d5..6ffb8e6a7e 100644
--- a/src/library/scala/runtime/AbstractFunction11.scala
+++ b/src/library/scala/runtime/AbstractFunction11.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction12.scala b/src/library/scala/runtime/AbstractFunction12.scala
index cda522dd37..733a0cc81d 100644
--- a/src/library/scala/runtime/AbstractFunction12.scala
+++ b/src/library/scala/runtime/AbstractFunction12.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction13.scala b/src/library/scala/runtime/AbstractFunction13.scala
index 016bcd4a31..60242cae17 100644
--- a/src/library/scala/runtime/AbstractFunction13.scala
+++ b/src/library/scala/runtime/AbstractFunction13.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction14.scala b/src/library/scala/runtime/AbstractFunction14.scala
index fc97bc8936..306a3a7f6f 100644
--- a/src/library/scala/runtime/AbstractFunction14.scala
+++ b/src/library/scala/runtime/AbstractFunction14.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction15.scala b/src/library/scala/runtime/AbstractFunction15.scala
index 9dc7a75b36..fd2a341388 100644
--- a/src/library/scala/runtime/AbstractFunction15.scala
+++ b/src/library/scala/runtime/AbstractFunction15.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction16.scala b/src/library/scala/runtime/AbstractFunction16.scala
index 3f8f19621a..9d0b2512da 100644
--- a/src/library/scala/runtime/AbstractFunction16.scala
+++ b/src/library/scala/runtime/AbstractFunction16.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction17.scala b/src/library/scala/runtime/AbstractFunction17.scala
index 1b8ea58c56..ebf76d3de8 100644
--- a/src/library/scala/runtime/AbstractFunction17.scala
+++ b/src/library/scala/runtime/AbstractFunction17.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction18.scala b/src/library/scala/runtime/AbstractFunction18.scala
index 63aa6cf8d1..4906c0f7cf 100644
--- a/src/library/scala/runtime/AbstractFunction18.scala
+++ b/src/library/scala/runtime/AbstractFunction18.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction19.scala b/src/library/scala/runtime/AbstractFunction19.scala
index 7a511ddd6e..1c8c87c0fd 100644
--- a/src/library/scala/runtime/AbstractFunction19.scala
+++ b/src/library/scala/runtime/AbstractFunction19.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction2.scala b/src/library/scala/runtime/AbstractFunction2.scala
index 0f75b2af87..1dad0963b7 100644
--- a/src/library/scala/runtime/AbstractFunction2.scala
+++ b/src/library/scala/runtime/AbstractFunction2.scala
@@ -8,12 +8,12 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
-abstract class AbstractFunction2[@specialized(Int, Long, Double) -T1, @specialized(Int, Long, Double) -T2, @specialized(Unit, Boolean, Int, Long, Double) +R] extends Function2[T1, T2, R] {
+abstract class AbstractFunction2[@specialized(scala.Int, scala.Long, scala.Double) -T1, @specialized(scala.Int, scala.Long, scala.Double) -T2, @specialized(scala.Unit, scala.Boolean, scala.Int, scala.Float, scala.Long, scala.Double) +R] extends Function2[T1, T2, R] {
}
diff --git a/src/library/scala/runtime/AbstractFunction20.scala b/src/library/scala/runtime/AbstractFunction20.scala
index 6afb329503..e76d60e774 100644
--- a/src/library/scala/runtime/AbstractFunction20.scala
+++ b/src/library/scala/runtime/AbstractFunction20.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction21.scala b/src/library/scala/runtime/AbstractFunction21.scala
index 8996f2f397..75f314aa46 100644
--- a/src/library/scala/runtime/AbstractFunction21.scala
+++ b/src/library/scala/runtime/AbstractFunction21.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction22.scala b/src/library/scala/runtime/AbstractFunction22.scala
index 8b33534291..bd9a3d1bbd 100644
--- a/src/library/scala/runtime/AbstractFunction22.scala
+++ b/src/library/scala/runtime/AbstractFunction22.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction3.scala b/src/library/scala/runtime/AbstractFunction3.scala
index 463d3d8a1d..3d479c99fa 100644
--- a/src/library/scala/runtime/AbstractFunction3.scala
+++ b/src/library/scala/runtime/AbstractFunction3.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction4.scala b/src/library/scala/runtime/AbstractFunction4.scala
index f7bc7d12a9..3492c91cbd 100644
--- a/src/library/scala/runtime/AbstractFunction4.scala
+++ b/src/library/scala/runtime/AbstractFunction4.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction5.scala b/src/library/scala/runtime/AbstractFunction5.scala
index 6642bb75bb..5aab3f065f 100644
--- a/src/library/scala/runtime/AbstractFunction5.scala
+++ b/src/library/scala/runtime/AbstractFunction5.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction6.scala b/src/library/scala/runtime/AbstractFunction6.scala
index 70944947e7..e770603d69 100644
--- a/src/library/scala/runtime/AbstractFunction6.scala
+++ b/src/library/scala/runtime/AbstractFunction6.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction7.scala b/src/library/scala/runtime/AbstractFunction7.scala
index ba4a35f743..80eaf98de4 100644
--- a/src/library/scala/runtime/AbstractFunction7.scala
+++ b/src/library/scala/runtime/AbstractFunction7.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction8.scala b/src/library/scala/runtime/AbstractFunction8.scala
index c3a0f0f9e3..9d844b7945 100644
--- a/src/library/scala/runtime/AbstractFunction8.scala
+++ b/src/library/scala/runtime/AbstractFunction8.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction9.scala b/src/library/scala/runtime/AbstractFunction9.scala
index 7e0541e246..1b90996a94 100644
--- a/src/library/scala/runtime/AbstractFunction9.scala
+++ b/src/library/scala/runtime/AbstractFunction9.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
package scala.runtime
diff --git a/src/partest/scala/tools/partest/Config.scala b/src/partest/scala/tools/partest/Config.scala
index 2ed096d930..288a3034e9 100644
--- a/src/partest/scala/tools/partest/Config.scala
+++ b/src/partest/scala/tools/partest/Config.scala
@@ -15,7 +15,7 @@ trait Config {
lazy val src = absolutize(srcDir).toDirectory
lazy val build = new TestBuild()
- def javaHomeEnv = envOrElse("JAVA_HOME", "")
+ def javaHomeEnv = envOrElse("JAVA_HOME", null)
def javaCmd = envOrElse("JAVACMD", "java")
def javacCmd = Option(javaHomeEnv) map (x => Path(x) / "bin" / "javac" path) getOrElse "javac"
diff --git a/test/files/neg/variances.check b/test/files/neg/variances.check
index e6abdcbb53..c5269190c2 100644
--- a/test/files/neg/variances.check
+++ b/test/files/neg/variances.check
@@ -10,4 +10,7 @@ variances.scala:16: error: covariant type A occurs in invariant position in supe
variances.scala:63: error: covariant type A occurs in contravariant position in type => test.Covariant.T[A]{def m: (A) => A} of value x
val x: T[A] {
^
-four errors found
+variances.scala:79: error: covariant type T occurs in contravariant position in type => test.TestAlias.B[C.this.A] of method foo
+ def foo: B[A]
+ ^
+5 errors found
diff --git a/test/files/neg/variances.scala b/test/files/neg/variances.scala
index 67783bc4aa..181783f48a 100644
--- a/test/files/neg/variances.scala
+++ b/test/files/neg/variances.scala
@@ -71,3 +71,11 @@ object Covariant {
val t: T[Any] = ST
t.x.m(new Object)
}
+
+object TestAlias {
+ class B[-T]
+ trait C[+T] {
+ type A = T
+ def foo: B[A]
+ }
+}