aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-04-05 12:15:45 +0200
committerMartin Odersky <odersky@gmail.com>2013-04-05 12:15:45 +0200
commitf8d5c8401ab7e4a31c9f4430ad64e27d8cb08bac (patch)
tree64d0916d98f35a63da221bbdf95d44bc4467e759 /src/dotty/tools/dotc/core
parent2dcae86ae6937ad2f8cd8b05734eb9feb964404e (diff)
downloaddotty-f8d5c8401ab7e4a31c9f4430ad64e27d8cb08bac.tar.gz
dotty-f8d5c8401ab7e4a31c9f4430ad64e27d8cb08bac.tar.bz2
dotty-f8d5c8401ab7e4a31c9f4430ad64e27d8cb08bac.zip
Refactored test framework
Moves worksheets to test. Factored out class DottyTest and made it usable from worksheets. Added worksheet test for signatures.
Diffstat (limited to 'src/dotty/tools/dotc/core')
-rw-r--r--src/dotty/tools/dotc/core/Names.scala3
-rw-r--r--src/dotty/tools/dotc/core/flagtest.sc25
-rw-r--r--src/dotty/tools/dotc/core/nesting.sc31
-rw-r--r--src/dotty/tools/dotc/core/periodtest.sc20
-rw-r--r--src/dotty/tools/dotc/core/testnames.sc50
5 files changed, 2 insertions, 127 deletions
diff --git a/src/dotty/tools/dotc/core/Names.scala b/src/dotty/tools/dotc/core/Names.scala
index b61f5ee06..5d78ce88c 100644
--- a/src/dotty/tools/dotc/core/Names.scala
+++ b/src/dotty/tools/dotc/core/Names.scala
@@ -79,7 +79,8 @@ object Names {
*/
def fromName(name: Name): ThisName = fromChars(chrs, name.start, name.length)
- override def toString = new String(chrs, start, length)
+ override def toString =
+ if (length == 0) "" else new String(chrs, start, length)
def show(implicit ctx: Context): String = ctx.nameString(this)
diff --git a/src/dotty/tools/dotc/core/flagtest.sc b/src/dotty/tools/dotc/core/flagtest.sc
deleted file mode 100644
index bd1a9bd25..000000000
--- a/src/dotty/tools/dotc/core/flagtest.sc
+++ /dev/null
@@ -1,25 +0,0 @@
-package dotty.tools.dotc.core
-
-object flagtest {
- println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet
-
- import Flags._
-
- val pri = Private //> pri : dotty.tools.dotc.core.Flags.FlagSet = private
- val pro = Protected //> pro : dotty.tools.dotc.core.Flags.FlagSet = protected
- val pripro = pri | pro //> pripro : dotty.tools.dotc.core.Flags.FlagSet = private protected
- pripro is pri //> res0: Boolean = true
- pripro is pro //> res1: Boolean = true
- pripro is Local //> res2: Boolean = false
- val pp = allOf(pri, pro) //> pp : dotty.tools.dotc.core.Flags.FlagConjunction = private protected
- pripro is pp //> res3: Boolean = true
- pri is pp //> res4: Boolean = false
- pri is pripro //> res5: Boolean = true
- Method //> res6: dotty.tools.dotc.core.Flags.FlagSet = <method>
- Abstract //> res7: dotty.tools.dotc.core.Flags.FlagSet = abstract
- Method == Abstract //> res8: Boolean = false
- Method.toCommonFlags //> res9: dotty.tools.dotc.core.Flags.FlagSet = <method> abstract
- FromStartFlags //> res10: dotty.tools.dotc.core.Flags.FlagSet = private protected <deferred> <p
- //| aram> <local> module <package> <existential>
- AccessFlags <= FromStartFlags //> res11: Boolean = true
-} \ No newline at end of file
diff --git a/src/dotty/tools/dotc/core/nesting.sc b/src/dotty/tools/dotc/core/nesting.sc
deleted file mode 100644
index a6fc92432..000000000
--- a/src/dotty/tools/dotc/core/nesting.sc
+++ /dev/null
@@ -1,31 +0,0 @@
-package dotty.tools.dotc.core
-
-object nesting {
- class C {
-
- class D {
- private def x = "D"
- def show = x
- class E {
- println(x)
- }
- }
-
- val foo: D = {
- class D extends C.this.D {
- private def x = "foo.D"
- class E {
- println(x)
- }
- }
- new D
- }
- }
-
- val c = new C //> c : dotty.tools.dotc.core.nesting.C = dotty.tools.dotc.core.nesting$C@1a84d
- //| a23
- val d = c.foo //> d : dotty.tools.dotc.core.nesting.c.D = dotty.tools.dotc.core.nesting$C$D$1
- //| @2705d88a
- d.show //> res0: String = foo.D
-
-} \ No newline at end of file
diff --git a/src/dotty/tools/dotc/core/periodtest.sc b/src/dotty/tools/dotc/core/periodtest.sc
deleted file mode 100644
index 38dccdfc3..000000000
--- a/src/dotty/tools/dotc/core/periodtest.sc
+++ /dev/null
@@ -1,20 +0,0 @@
-package dotty.tools.dotc.core
-
-object periodtest {
- println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet
-
- import Periods._
-
- val p1 = Period(1, 2, 7) //> p1 : dotty.tools.dotc.core.Periods.Period = dotty.tools.dotc.core.Periods$P
- //| eriod@4e5
- val p2 = Period(1, 3, 7) //> p2 : dotty.tools.dotc.core.Periods.Period = dotty.tools.dotc.core.Periods$P
- //| eriod@4e4
- p1 contains p2 //> res0: Boolean = true
- p1 contains p1 //> res1: Boolean = true
- p2 contains p1 //> res2: Boolean = false
- p1 contains Period(0, 3, 3) //> res3: Boolean = false
- p1 contains Period(2, 3, 3) //> res4: Boolean = false
- p1 contains Nowhere //> res5: Boolean = false
- p1 overlaps p1 //> res6: Boolean = true
- Period(1, 2, 7) overlaps Period(1, 6, 9) //> res7: Boolean = true
-} \ No newline at end of file
diff --git a/src/dotty/tools/dotc/core/testnames.sc b/src/dotty/tools/dotc/core/testnames.sc
deleted file mode 100644
index 21c4a0ee6..000000000
--- a/src/dotty/tools/dotc/core/testnames.sc
+++ /dev/null
@@ -1,50 +0,0 @@
-package dotty.tools.dotc.core
-
-object testnames {
- println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet
-
- import Names._
- val n = termName("hello") //> n : dotty.tools.dotc.core.Names.TermName = hello
- val tn = n.toTypeName //> tn : dotty.tools.dotc.core.Names.TypeName = hello
- val ln = n.toLocalName //> ln : dotty.tools.dotc.core.Names.LocalName = hello
- assert(tn.toTermName eq n)
- assert(tn.toLocalName eq ln)
- assert(n.toLocalName eq ln)
-
- n == tn //> res0: Boolean = false
- n == ln //> res1: Boolean = false
- n eq tn //> res2: Boolean = false
- n.hashCode //> res3: Int = 0
- tn.hashCode //> res4: Int = 0
- val foo = encodedTermName("++") //> foo : dotty.tools.dotc.core.Names.TermName = $plus$plus
- foo.hashCode //> res5: Int = 5
- foo.toTypeName.hashCode //> res6: Int = -5
-
- val nfoo = n ++ foo //> nfoo : dotty.tools.dotc.core.testnames.n.ThisName = hello$plus$plus
- nfoo contains '$' //> res7: Boolean = true
- 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
-
- import Decorators._
-
- val local = "local".toTermName.toLocalName //> local : dotty.tools.dotc.core.Names.LocalName = local
- val local1 = local ++ "!" //> local1 : dotty.tools.dotc.core.testnames.local.ThisName = local!
- local1.showDetailed //> res21: String = local!/L
- val local2 = "Foo.".toTermName ++: local1 //> local2 : dotty.tools.dotc.core.Names.Name = Foo.local!
- local2.showDetailed //> res22: String = Foo.local!/V
- local1.dropRight(2).showDetailed //> res23: String = loca/L
- local1.fromName("Foo.".toTermName ++ local1).showDetailed
- //> res24: String = Foo.local!/L
-} \ No newline at end of file