summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorDavid MacIver <david.maciver@gmail.com>2009-06-01 10:22:48 +0000
committerDavid MacIver <david.maciver@gmail.com>2009-06-01 10:22:48 +0000
commit3f8de98f0b0ec0e10864b37016c2318439ce7898 (patch)
tree86682329b12cdd499927954c64718eb7dc845dba /src/compiler
parente0a4e468b76061840c585824f93163529dce73f6 (diff)
downloadscala-3f8de98f0b0ec0e10864b37016c2318439ce7898.tar.gz
scala-3f8de98f0b0ec0e10864b37016c2318439ce7898.tar.bz2
scala-3f8de98f0b0ec0e10864b37016c2318439ce7898.zip
Modify TreeSet to use Ordering instead of Order...
Modify TreeSet to use Ordering instead of Ordered to bring it inline with TreeMap and improve performance.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/Settings.scala1
-rw-r--r--src/compiler/scala/tools/nsc/doc/DocUtil.scala2
-rw-r--r--src/compiler/scala/tools/nsc/doc/ModelExtractor.scala9
-rw-r--r--src/compiler/scala/tools/nsc/doc/ModelToXML.scala8
-rwxr-xr-xsrc/compiler/scala/tools/nsc/interactive/Positions.scala1
5 files changed, 8 insertions, 13 deletions
diff --git a/src/compiler/scala/tools/nsc/Settings.scala b/src/compiler/scala/tools/nsc/Settings.scala
index dd504e3781..edd75a617e 100644
--- a/src/compiler/scala/tools/nsc/Settings.scala
+++ b/src/compiler/scala/tools/nsc/Settings.scala
@@ -331,6 +331,7 @@ object Settings
new OutputSetting(outputDirs, default)
}
+ implicit val SettingOrdering : Ordering[Setting] = Ordering.ordered;
/** A base class for settings of all types.
* Subclasses each define a `value' field of the appropriate type.
*/
diff --git a/src/compiler/scala/tools/nsc/doc/DocUtil.scala b/src/compiler/scala/tools/nsc/doc/DocUtil.scala
index 096c1b8374..ad2c4ca521 100644
--- a/src/compiler/scala/tools/nsc/doc/DocUtil.scala
+++ b/src/compiler/scala/tools/nsc/doc/DocUtil.scala
@@ -92,7 +92,7 @@ object DocUtil {
var ts = ts0
for (t <- ts1.iterator) {
if (!ts.contains(t._1))
- ts = ts.updated(t._1, new TreeSet[S]);
+ ts = ts.updated(t._1, TreeSet.empty[S](Ordering.ordered[S]));
ts = ts.updated(t._1, merge(ts(t._1), t._2))
}
ts
diff --git a/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala b/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala
index fd954071c7..328f2713af 100644
--- a/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala
+++ b/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala
@@ -420,8 +420,8 @@ trait ModelExtractor {
"[ \t]*@(exception|param|throws)[ \t]+(\\p{Graph}*)[ \t]*(.*)")
def sort[E <: Entity](entities: Iterable[E]): Iterable[E] = {
- val set = new collection.immutable.TreeSet[E]()({eA: E => new Ordered[E] {
- def compare(eB: E): Int = {
+ val set = new collection.immutable.TreeSet[E]()(new Ordering[E] {
+ def compare(eA : E, eB: E): Int = {
if (eA eq eB) return 0;
(eA, eB) match {
case (eA: ClassOrObject, eB: ClassOrObject) =>
@@ -442,10 +442,7 @@ trait ModelExtractor {
assert(diff0 != 0)
diff0
}
- override def equals(other: Any) : Boolean =
- eA.equals(other) || (other match { case that: AnyRef => this.eq(that)
- case _ => false })
- }})
+ })
set ++ entities
}
}
diff --git a/src/compiler/scala/tools/nsc/doc/ModelToXML.scala b/src/compiler/scala/tools/nsc/doc/ModelToXML.scala
index dc8f6a1771..21729b32b8 100644
--- a/src/compiler/scala/tools/nsc/doc/ModelToXML.scala
+++ b/src/compiler/scala/tools/nsc/doc/ModelToXML.scala
@@ -257,8 +257,8 @@ trait ModelToXML extends ModelExtractor {
var seq: NodeSeq = NodeSeq.Empty
if (xs.iterator.hasNext) {
// alphabetic
- val set = new scala.collection.immutable.TreeSet[entity.Member]()(mA => new Ordered[entity.Member] {
- def compare(mB: entity.Member): Int =
+ val set = new scala.collection.immutable.TreeSet[entity.Member]()(new Ordering[entity.Member] {
+ def compare(mA : entity.Member, mB: entity.Member): Int =
if (mA eq mB) 0
else {
val diff = mA.name compare mB.name
@@ -269,10 +269,6 @@ trait ModelToXML extends ModelExtractor {
diff0
}
}
- override def equals(other: Any): Boolean =
- other match { case that: entity.Member => compare(that) == 0
- case that: AnyRef => this.eq(that)
- case _ => false }
})++xs
seq = seq ++ <table cellpadding="3" class="member" summary="">
<tr><td colspan="2" class="title">{Text(category.label + " Summary")}</td></tr>
diff --git a/src/compiler/scala/tools/nsc/interactive/Positions.scala b/src/compiler/scala/tools/nsc/interactive/Positions.scala
index 141f710b88..9982e14815 100755
--- a/src/compiler/scala/tools/nsc/interactive/Positions.scala
+++ b/src/compiler/scala/tools/nsc/interactive/Positions.scala
@@ -148,6 +148,7 @@ self: Global =>
tree setPos OffsetPosition(pos.source.get, currentPos.start)
else {
setChildrenPos(currentPos, children)
+ // temporary hack to work around issues with implicit resolution
tree setPos new RangePosition(
pos.source.get, (children map (_.pos.start)).min, pos.point, (children map (_.pos.end)).max)
}