diff options
author | Paul Phillips <paulp@improving.org> | 2011-01-02 17:40:25 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-01-02 17:40:25 +0000 |
commit | 635bc9c17b0d35e9cf8029cf24aee8d3594a143f (patch) | |
tree | 7b7ca9282bd2c009f9c0e1c4c00ffb7eedf94802 /src | |
parent | 533ffe9482c530489ad4f6670831b8d87f78193a (diff) | |
download | scala-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')
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] |