diff options
Diffstat (limited to 'compiler/test/worksheets/testnames.sc')
-rw-r--r-- | compiler/test/worksheets/testnames.sc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/compiler/test/worksheets/testnames.sc b/compiler/test/worksheets/testnames.sc new file mode 100644 index 000000000..282b07d4e --- /dev/null +++ b/compiler/test/worksheets/testnames.sc @@ -0,0 +1,49 @@ +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 //> res21: dotty.tools.dotc.core.testnames.local.ThisName = local! + val local2 = "Foo.".toTermName ++: local1 //> local2 : dotty.tools.dotc.core.Names.Name = Foo.local! + local2 //> res22: dotty.tools.dotc.core.Names.Name = Foo.local! + local1.dropRight(2) //> res23: dotty.tools.dotc.core.Names.Name = loca + local1.fromName("Foo.".toTermName ++ local1) //> res24: dotty.tools.dotc.core.testnames.local1.ThisName = Foo.local! +}
\ No newline at end of file |