Patch for ruby-core:16010

e$B%o%J%Y$H?=$7$^$9!#e(B

[ruby-core:16010]e$B$N8e<T$NLdBj$KBP$9$k%Q%C%A$r=q$-$^$7$?!#e(B
defined? e$B9=J8Cf$N%a%=%C%I8F$S=P$7$GNc30$,5/$-$?>l9g$Ke(B
e$B<0A4BN$,e(B nil e$B$rJV$9$h$&$K$J$j$^$9!#e(B

Index: compile.c

— compile.c (revision 16056)
+++ compile.c (working copy)
@@ -2422,10 +2422,21 @@
ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);
}
if (!self) {

  •  LABEL *lstart = NEW_LABEL(nd_line(node));
    
  •  LABEL *lend = NEW_LABEL(nd_line(node));
    
  •  VALUE rescue = NEW_CHILD_ISEQVAL(NEW_NIL(),
    
  •           rb_str_concat(rb_str_new2
    
  •             ("defined guard in "),
    
  •             iseq->name),
    
  •           ISEQ_TYPE_DEFINED_GUARD);
    
  •  defined_expr(iseq, ret, node->nd_recv, lfinish, Qfalse);
     ADD_INSNL(ret, nd_line(node), branchunless, lfinish[1]);
    
  •  ADD_LABEL(ret, lstart);
     COMPILE(ret, "defined/recv", node->nd_recv);
    
  •  ADD_LABEL(ret, lend);
    
  •  ADD_CATCH_ENTRY(CATCH_TYPE_RESCUE, lstart, lend, rescue, 
    

lfinish[1]);
ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_METHOD),
ID2SYM(node->nd_mid), needstr);
}

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:34461] patch for ruby-core:16010”
on Sun, 20 Apr 2008 20:58:54 +0900, wanabe [email protected]
writes:

|[ruby-core:16010]e$B$N8e<T$NLdBj$KBP$9$k%Q%C%A$r=q$-$^$7$?!#e(B
|defined? e$B9=J8Cf$N%a%=%C%I8F$S=P$7$GNc30$,5/$-$?>l9g$Ke(B
|e$B<0A4BN$,e(B nil e$B$rJV$9$h$&$K$J$j$^$9!#e(B

e$B$3$l$be(B[ruby-dev:34460]e$B$b<h$j9~$_$?$$$N$G$9$,!"$5$5$@$/$s$O$Ie(B
e$B$&9M$($F$$$k$s$G$7$g$&!)e(B

e$B!!$5$5$@$G$9!%e(B

Yukihiro M. wrote:

|[ruby-core:16010]e$B$N8e<T$NLdBj$KBP$9$k%Q%C%A$r=q$-$^$7$?!#e(B
|defined? e$B9=J8Cf$N%a%=%C%I8F$S=P$7$GNc30$,5/$-$?>l9g$Ke(B
|e$B<0A4BN$,e(B nil e$B$rJV$9$h$&$K$J$j$^$9!#e(B

e$B$3$l$be(B[ruby-dev:34460]e$B$b<h$j9~$_$?$$$N$G$9$,!"$5$5$@$/$s$O$Ie(B
e$B$&9M$($F$$$k$s$G$7$g$&!)e(B

e$B!!$H$j$"$($:!$$3$l$OLdBj$J$$$H;W$$$^$9!%e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:34465] Re: patch for ruby-core:16010”
on Mon, 21 Apr 2008 09:55:52 +0900, SASADA Koichi [email protected]
writes:

|Yukihiro M. wrote:
|> |[ruby-core:16010]e$B$N8e<T$NLdBj$KBP$9$k%Q%C%A$r=q$-$^$7$?!#e(B
|> |defined? e$B9=J8Cf$N%a%=%C%I8F$S=P$7$GNc30$,5/$-$?>l9g$Ke(B
|> |e$B<0A4BN$,e(B nil e$B$rJV$9$h$&$K$J$j$^$9!#e(B
|>
|> e$B$3$l$be(B[ruby-dev:34460]e$B$b<h$j9~$_$?$$$N$G$9$,!“$5$5$@$/$s$O$Ie(B
|> e$B$&9M$($F$$$k$s$G$7$g$&!)e(B
|
|e$B!!$H$j$”$($:!$$3$l$OLdBj$J$$$H;W$$$^$9!%e(B

e$B$3$l$O<h$j9~$_$^$7$?!#B>$N$O$$$+$,$G$9$+!)e(B