summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2007-02-15 17:59:50 +0000
committerIulian Dragos <jaguarul@gmail.com>2007-02-15 17:59:50 +0000
commit100b76d0f5a89b60bc75bce73725f4da33375a78 (patch)
tree9c778953c17e323357afd8de8482b7e25ef56e26 /src/compiler
parent142560739a368d569e170f581f7f730cb07bf79d (diff)
downloadscala-100b76d0f5a89b60bc75bce73725f4da33375a78.tar.gz
scala-100b76d0f5a89b60bc75bce73725f4da33375a78.tar.bz2
scala-100b76d0f5a89b60bc75bce73725f4da33375a78.zip
Added unary_ primitives
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala8
-rw-r--r--src/compiler/scala/tools/nsc/symtab/StdNames.scala8
3 files changed, 12 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala b/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
index d98a6b86b9..c666440fdd 100644
--- a/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
+++ b/src/compiler/scala/tools/nsc/backend/ScalaPrimitives.scala
@@ -243,7 +243,7 @@ abstract class ScalaPrimitives {
addPrimitives(BooleanClass, nme.OR, OR)
addPrimitives(BooleanClass, nme.AND, AND)
addPrimitives(BooleanClass, nme.XOR, XOR)
- addPrimitives(BooleanClass, nme.ADD, CONCAT)
+// addPrimitives(BooleanClass, nme.ADD, CONCAT)
// unary !
addPrimitives(BooleanClass, nme.UNARY_!, ZNOT)
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index 01d6437426..15e368cb25 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -521,6 +521,7 @@ trait Definitions requires SymbolTable {
// init scala.Boolean
newParameterlessMethod(BooleanClass, nme.ZNOT, booltype)
+ newParameterlessMethod(BooleanClass, nme.UNARY_!, booltype)
newMethod(BooleanClass, nme.EQ, boolparam, booltype)
newMethod(BooleanClass, nme.NE, boolparam, booltype)
newMethod(BooleanClass, nme.ZOR, boolparam, booltype)
@@ -586,8 +587,13 @@ trait Definitions requires SymbolTable {
// unary operations
newParameterlessMethod(clazz, nme.ADD, restype)
newParameterlessMethod(clazz, nme.SUB, restype)
- if (isCardinal)
+ newParameterlessMethod(clazz, nme.UNARY_+, restype)
+ newParameterlessMethod(clazz, nme.UNARY_-, restype)
+
+ if (isCardinal) {
newParameterlessMethod(clazz, nme.NOT, restype)
+ newParameterlessMethod(clazz, nme.UNARY_~, restype)
+ }
// binary operations
val restype2 = if (isCardinal) longtype else restype
diff --git a/src/compiler/scala/tools/nsc/symtab/StdNames.scala b/src/compiler/scala/tools/nsc/symtab/StdNames.scala
index 361cc96a2b..a0df9cff8f 100644
--- a/src/compiler/scala/tools/nsc/symtab/StdNames.scala
+++ b/src/compiler/scala/tools/nsc/symtab/StdNames.scala
@@ -335,10 +335,10 @@ trait StdNames requires SymbolTable {
val ASR = encode(">>")
// unary operators
- val UNARY_~ = newTermName("unary_~")
- val UNARY_+ = newTermName("unary_+")
- val UNARY_- = newTermName("unary_-")
- val UNARY_! = newTermName("unary_!")
+ val UNARY_~ = encode("unary_~")
+ val UNARY_+ = encode("unary_+")
+ val UNARY_- = encode("unary_-")
+ val UNARY_! = encode("unary_!")
// value-conversion methods
val toByte = newTermName("toByte")