# +:x doesn't raise exception

**URL:** <https://www.ruby-forum.com/t/x-doesnt-raise-exception/109866>\
**Category:** Development\
**Created:** [July 19, 2007, 7:23pm UTC](https://www.ruby-forum.com/t/x-doesnt-raise-exception/109866 "2007-07-19T19:23:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [July 19, 2007, 7:23pm UTC](https://www.ruby-forum.com/t/x-doesnt-raise-exception/109866/1 "2007-07-19T19:23:28Z")

</div>

e$B1sF#$H?=$7$^$9!#e(B

Symbol#+@ e$B$de(B Regexp#+@ e$B$,$J$$$N$K0J2\<$,Nc30$K$J$i$J$$$N$Oe(B  
e$B;EMM$G$7$g$&$+!#e(B

$ ./ruby -ve ‘p(+:x)’  
ruby 1.8.6 (2007-07-19 patchlevel 5000) [i686-linux]  
:x  
$ ./ruby -ve ‘p(+//)’  
ruby 1.8.6 (2007-07-19 patchlevel 5000) [i686-linux]  
//

# e$B=EH"$N6y$G$9$,5$$K$J$C$?$N$G!D!D!#e(B

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [July 20, 2007, 5:01am UTC](https://www.ruby-forum.com/t/x-doesnt-raise-exception/109866/2 "2007-07-20T05:01:38Z")

</div>

e$B$J$+$@$G$9!#e(B

At Thu, 19 Jul 2007 22:13:04 +0900,  
Yusuke ENDOH wrote in [ruby-dev:31264]:

> Symbol#+@ e$B$de(B Regexp#+@ e$B$,$J$$$N$K0J2\<$,Nc30$K$J$i$J$$$N$Oe(B  
> e$B;EMM$G$7$g$&$+!#e(B

e$B%j%F%i%k$NC19`!\$OL5;k$7$F$k$s$G$9$,!"%(%i!<$N$[$&$,$$$$$G$7$ge(B e$B$&$+!#$D$$$G$KC19`!]$b2DG=$J$iJQ49$9$k$h$&$K$7$F$\_$^$7$?$,!#e(B

# Index: parse.y

— parse.y (revision 12819)  
+++ parse.y (working copy)  
@@ -420,4 +420,9 @@ extern int rb\_local\_defined(ID);  
extern int rb\_parse\_in\_eval(void);

+#define numeric\_p(val) (\

- FIXNUM\_P(val) || \
- (!SPECIAL\_CONST\_P(val) && \
- (BUILTIN\_TYPE(val) == T\_FLOAT || BUILTIN\_TYPE(val) == T\_BIGNUM)))
- 

#else  
#define remove\_begin(node) (node)  
@@ -2007,5 +2012,6 @@ arg : lhs ‘=’ arg  
{  
/_%%%_/

- 

```
 if ($2 && nd_type($2) == NODE_LIT) {

```

- 

```
 $$ = 0;

```

- 

```
 if ($2 && nd_type($2) == NODE_LIT && numeric_p($2->nd_lit)) {
     $$ = $2;
 }

```

@@ -2020,5 +2026,10 @@ arg : lhs ‘=’ arg  
{  
/_%%%_/

- 

```
 $$ = call_op($2, tUMINUS, 0, 0);

```

- 

```
 if ($2 && nd_type($2) == NODE_LIT && numeric_p($2->nd_lit)) {

```

- 

```
     $$ = negate_lit($2);

```

- 

```
 }

```

- 

```
 else {

```

- 

```
     $$ = call_op($2, tUMINUS, 0, 0);

```

- 

```
 }
   /*%
 $$ = dispatch2(unary, ripper_intern("-@"), $2);

```

@@ -7901,8 +7912,8 @@ negate\_lit(NODE \*node)  
switch (TYPE(node-\>nd\_lit)) {  
case T\_FIXNUM:

- node-\>nd\_lit = LONG2FIX(-FIX2LONG(node-\>nd\_lit));

- node-\>nd\_lit = LONG2NUM(-FIX2LONG(node-\>nd\_lit));  
break;  
case T\_BIGNUM:

- node-\>nd\_lit = rb\_funcall(node-\>nd\_lit,tUMINUS,0,0);

- RBIGNUM(node-\>nd\_lit)-\>sign = !RBIGNUM(node-\>nd\_lit)-\>sign;  
break;  
case T\_FLOAT:

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [July 23, 2007, 11:26am UTC](https://www.ruby-forum.com/t/x-doesnt-raise-exception/109866/3 "2007-07-23T11:26:09Z")

</div>

e$B1sF#$G$9!#e(B

> e$B%j%F%i%k$NC19`!\$OL5;k$7$F$k$s$G$9$,!"%(%i!<$N$[$&$,$$$$$G$7$ge(B e$B$&$+!#$D$$$G$KC19`!]$b2DG=$J$iJQ49$9$k$h$&$K$7$F$\_$^$7$?$,!#e(B

e$B$=$N:GE,2=$Oe(B Fixnum#+@  
e$B$N:FDj5A$rL5;k$7$F$$$^$9$,$$$$$N$G$7$g$&$+!#e(B

$ ./ruby -ve ‘class Fixnum; def +@; nil; end; end; p(+1)’  
ruby 1.8.6 (2007-07-19 patchlevel 5000) [i686-linux]  
1

$ ./ruby -ve ‘class Fixnum; def +@; nil; end; end; p(+(1))’  
ruby 1.8.6 (2007-07-19 patchlevel 5000) [i686-linux]  
nil

e$Be$OL5;k$7$FLdBj$J$5$=$&$J$N$G0l$D$N\<j$@$H$O;W$$$^$9$,!"e(B  
e$B$=$l$J$ie(B Fixnum#+ e$B$de(B Fixnum#\*  
e$B$N:FDj5A$bL5;k$7$FDj?t\>v$\_9~$\_e(B  
e$B:GE,2=$r\<BAu$9$k$H$b$C$H4r$7$=$&$G$9!#e(B

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [July 23, 2007, 7:57pm UTC](https://www.ruby-forum.com/t/x-doesnt-raise-exception/109866/4 "2007-07-23T19:57:12Z")

</div>

e$B$J$+$@$G$9!#e(B

At Mon, 23 Jul 2007 18:01:14 +0900,  
Yusuke ENDOH wrote in [ruby-dev:31282]:

> > e$B%j%F%i%k$NC19`!\$OL5;k$7$F$k$s$G$9$,!"%(%i!<$N$[$&$,$$$$$G$7$ge(B e$B$&$+!#$D$$$G$KC19`!]$b2DG=$J$iJQ49$9$k$h$&$K$7$F$\_$^$7$?$,!#e(B
> 
> e$B$=$N:GE,2=$Oe(B Fixnum#+@ e$B$N:FDj5A$rL5;k$7$F$$$^$9$,$$$$$N$G$7$g$&$+!#e(B
> 
> $ ./ruby -ve ‘class Fixnum; def +@; nil; end; end; p(+1)’  
> ruby 1.8.6 (2007-07-19 patchlevel 5000) [i686-linux]  
> 1

e$B$3$l$Oe(B +1 e$B$G0l$D$N%j%F%i%k$G$9$+$i!"JL$G$9!#3:Ev$9$k$N$Oe(B p(+  
1)  
e$B$N$h$&$Ke(B+e$B$H?t;z$,J,$+$l$F$$$k\>l9g$G$9!#e(B

> $ ./ruby -ve ‘class Fixnum; def +@; nil; end; end; p(+(1))’  
> ruby 1.8.6 (2007-07-19 patchlevel 5000) [i686-linux]  
> nil

[ruby-dev:31267]e$B$rEv$F$k$H$3$l$be(B1e$B$N$^$^$K$J$j$^$9!#e(B

> e$Be$OL5;k$7$FLdBj$J$5$=$&$J$N$G0l$D$N\<j$@$H$O;W$$$^$9$,!"e(B  
> e$B$=$l$J$ie(B Fixnum#+ e$B$de(B Fixnum#\* e$B$N:FDj5A$bL5;k$7$FDj?t\>v$\_9~$\_e(B  
> e$B:GE,2=$r\<BAu$9$k$H$b$C$H4r$7$=$&$G$9!#e(B

e$B%j%F%i%kF1;N$N1i;;$O:FDj5A$rL5;k$9$k!"$^$?$O%Q!\<%9;~E@$NDj5A$re(B  
e$B;H$&$H$+e(B?
