summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-01-02 17:40:25 +0000
committerPaul Phillips <paulp@improving.org>2011-01-02 17:40:25 +0000
commit635bc9c17b0d35e9cf8029cf24aee8d3594a143f (patch)
tree7b7ca9282bd2c009f9c0e1c4c00ffb7eedf94802 /src
parent533ffe9482c530489ad4f6670831b8d87f78193a (diff)
downloadscala-635bc9c17b0d35e9cf8029cf24aee8d3594a143f.tar.gz
scala-635bc9c17b0d35e9cf8029cf24aee8d3594a143f.tar.bz2
scala-635bc9c17b0d35e9cf8029cf24aee8d3594a143f.zip
Misc uninteresting tidbits to take some weight ...
Misc uninteresting tidbits to take some weight off overly large patches in progress. No review.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/interpreter/package.scala3
-rw-r--r--src/compiler/scala/tools/nsc/util/JavaStackFrame.scala7
-rw-r--r--src/compiler/scala/tools/nsc/util/package.scala3
-rw-r--r--src/fjbg/ch/epfl/lamp/fjbg/JMethodType.java12
-rw-r--r--src/fjbg/ch/epfl/lamp/fjbg/JObjectType.java9
-rwxr-xr-xsrc/library/scala/reflect/generic/Constants.scala2
6 files changed, 32 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/interpreter/package.scala b/src/compiler/scala/tools/nsc/interpreter/package.scala
index 88e54abcde..9d131f4786 100644
--- a/src/compiler/scala/tools/nsc/interpreter/package.scala
+++ b/src/compiler/scala/tools/nsc/interpreter/package.scala
@@ -21,9 +21,6 @@ package object interpreter {
x
}
- /** Frequency counter */
- def freq[T](seq: Seq[T]) = seq groupBy identity mapValues (_.length)
-
/** Heuristically strip interpreter wrapper prefixes
* from an interpreter output string.
*/
diff --git a/src/compiler/scala/tools/nsc/util/JavaStackFrame.scala b/src/compiler/scala/tools/nsc/util/JavaStackFrame.scala
index a08c9ed3b8..7b1caa1784 100644
--- a/src/compiler/scala/tools/nsc/util/JavaStackFrame.scala
+++ b/src/compiler/scala/tools/nsc/util/JavaStackFrame.scala
@@ -37,6 +37,11 @@ class FrameContext(frame: JavaStackFrame, codeSources: Sources) {
else contextLines.mkString(tag + "\n", "", "")
}
+object FrameContext {
+ def apply(elem: StackTraceElement): FrameContext = apply(new JavaStackFrame(elem))
+ def apply(frame: JavaStackFrame): FrameContext = new FrameContext(frame, Sources())
+}
+
class JavaStackFrame(val elem: StackTraceElement) {
def className: String = elem.getClassName()
def methodName: String = elem.getMethodName()
@@ -51,6 +56,7 @@ class JavaStackFrame(val elem: StackTraceElement) {
private def standardString(which: String) =
"%s.%s(%s:%s)".format(which, methodName, fileName, line)
+ def locationString = fileName + ":" + line
def javaString = standardString(className)
def shortNameString = standardString(shortName)
def tag = "[%s.%s]".format(shortName, methodName)
@@ -59,6 +65,7 @@ class JavaStackFrame(val elem: StackTraceElement) {
}
object JavaStackFrame {
+ def apply(elem: StackTraceElement) = new JavaStackFrame(elem)
def frames(xs: Array[StackTraceElement]): Array[JavaStackFrame] = xs map (x => new JavaStackFrame(x))
def frames(t: Throwable): Array[JavaStackFrame] = frames(Exceptional.unwrap(t).getStackTrace)
}
diff --git a/src/compiler/scala/tools/nsc/util/package.scala b/src/compiler/scala/tools/nsc/util/package.scala
index b61f3751b9..2bede3c8ca 100644
--- a/src/compiler/scala/tools/nsc/util/package.scala
+++ b/src/compiler/scala/tools/nsc/util/package.scala
@@ -13,6 +13,9 @@ package object util {
/** Apply a function and return the passed value */
def returning[T](x: T)(f: T => Unit): T = { f(x) ; x }
+ /** Frequency counter */
+ def freq[T](xs: Traversable[T]): Map[T, Int] = xs groupBy identity mapValues (_.size)
+
/** Execute code and then wait for all Threads created during its
* execution to complete.
*/
diff --git a/src/fjbg/ch/epfl/lamp/fjbg/JMethodType.java b/src/fjbg/ch/epfl/lamp/fjbg/JMethodType.java
index 1d2952b84e..a0197de972 100644
--- a/src/fjbg/ch/epfl/lamp/fjbg/JMethodType.java
+++ b/src/fjbg/ch/epfl/lamp/fjbg/JMethodType.java
@@ -72,4 +72,16 @@ public class JMethodType extends JType {
public boolean isCompatibleWith(JType other) {
return false;
}
+ public boolean equals(Object o) {
+ if (o instanceof JMethodType)
+ return ((JMethodType)o).getSignature().equals(this.getSignature());
+ else
+ return false;
+ }
+ public int hashCode() {
+ if (signature == null)
+ return 0;
+ else
+ return signature.hashCode();
+ }
}
diff --git a/src/fjbg/ch/epfl/lamp/fjbg/JObjectType.java b/src/fjbg/ch/epfl/lamp/fjbg/JObjectType.java
index b8567e8d30..50ccae79c0 100644
--- a/src/fjbg/ch/epfl/lamp/fjbg/JObjectType.java
+++ b/src/fjbg/ch/epfl/lamp/fjbg/JObjectType.java
@@ -53,4 +53,13 @@ public class JObjectType extends JReferenceType {
return other instanceof JObjectType
|| other == JType.REFERENCE;
}
+ public boolean equals(Object o) {
+ if (o instanceof JObjectType)
+ return ((JObjectType)o).getSignature().equals(this.getSignature());
+ else
+ return false;
+ }
+ public int hashCode() {
+ return name.hashCode();
+ }
}
diff --git a/src/library/scala/reflect/generic/Constants.scala b/src/library/scala/reflect/generic/Constants.scala
index f137fc43c9..1dadc55aae 100755
--- a/src/library/scala/reflect/generic/Constants.scala
+++ b/src/library/scala/reflect/generic/Constants.scala
@@ -227,7 +227,7 @@ trait Constants {
case ClassTag => "classOf[" + signature(typeValue) + "]"
case CharTag => escape("'" + escapedChar(charValue) + "'")
case LongTag => longValue.toString() + "L"
- case _ => "" + value
+ case _ => String.valueOf(value)
}
}
def typeValue: Type = value.asInstanceOf[Type]