aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-02-28 19:05:00 +0100
committerMartin Odersky <odersky@gmail.com>2013-02-28 19:05:00 +0100
commit75507c832cf281b18e3dff0cefdee315d777bec9 (patch)
tree7000c0931a11262030f7a25ed8f3d31e190c585d
parent9c77f0ec16c8e1f6555590a531783e193d3dc7ea (diff)
downloaddotty-75507c832cf281b18e3dff0cefdee315d777bec9.tar.gz
dotty-75507c832cf281b18e3dff0cefdee315d777bec9.tar.bz2
dotty-75507c832cf281b18e3dff0cefdee315d777bec9.zip
Fixes Name#slice.
-rw-r--r--src/dotty/tools/dotc/core/Names.scala2
-rw-r--r--src/dotty/tools/dotc/core/testnames.sc11
2 files changed, 12 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/Names.scala b/src/dotty/tools/dotc/core/Names.scala
index 63ff924d8..c046fd74b 100644
--- a/src/dotty/tools/dotc/core/Names.scala
+++ b/src/dotty/tools/dotc/core/Names.scala
@@ -113,7 +113,7 @@ object Names {
override def apply(index: Int): Char = chrs(start + index)
override def slice(from: Int, until: Int): ThisName =
- fromChars(chrs, start + from, start + until)
+ fromChars(chrs, start + from, until - from)
override def equals(that: Any) = this eq that.asInstanceOf[AnyRef]
diff --git a/src/dotty/tools/dotc/core/testnames.sc b/src/dotty/tools/dotc/core/testnames.sc
index aa0493e9d..19c24b226 100644
--- a/src/dotty/tools/dotc/core/testnames.sc
+++ b/src/dotty/tools/dotc/core/testnames.sc
@@ -26,4 +26,15 @@ object testnames {
nfoo.replace('$', '.') //> res8: dotty.tools.dotc.core.testnames.nfoo.ThisName = hello.plus.plus
n == EmptyTermName //> res9: Boolean = false
EmptyTermName.start //> res10: Int = -1
+ nfoo slice (2, 4) //> res11: dotty.tools.dotc.core.testnames.nfoo.ThisName = ll
+ nfoo take 3 //> res12: dotty.tools.dotc.core.Names.Name = hel
+ nfoo drop 3 //> res13: dotty.tools.dotc.core.Names.Name = lo$plus$plus
+ nfoo.head //> res14: Char = h
+ nfoo.tail //> res15: dotty.tools.dotc.core.Names.Name = ello$plus$plus
+ nfoo.isTermName //> res16: Boolean = true
+ val cs = Array('a', 'b', 'c') //> cs : Array[Char] = Array(a, b, c)
+ termName(cs, 0, 2) //> res17: dotty.tools.dotc.core.Names.TermName = ab
+ termName("abc") //> res18: dotty.tools.dotc.core.Names.TermName = abc
+ nfoo.filter(_ >= 'l') //> res19: dotty.tools.dotc.core.Names.Name = lloplusplus
+ nfoo map (_.toUpper) //> res20: dotty.tools.dotc.core.Names.Name = HELLO$PLUS$PLUS
} \ No newline at end of file