]> git.eshelyaron.com Git - emacs.git/commitdiff
Etags: yet another improvement in Ruby tags
authorEli Zaretskii <eliz@gnu.org>
Wed, 3 Feb 2016 16:24:20 +0000 (18:24 +0200)
committerEli Zaretskii <eliz@gnu.org>
Wed, 3 Feb 2016 16:24:20 +0000 (18:24 +0200)
* lib-src/etags.c (Ruby_functions): Handle continuation lines in
Ruby accessor definitions.  (Bug#22241)

* test/etags/ruby-src/test1.ru (A::B#X): Add some more tests for
accessors and multiline definitions.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to changes in Ruby tags.

lib-src/etags.c
test/etags/CTAGS.good
test/etags/ETAGS.good_1
test/etags/ETAGS.good_2
test/etags/ETAGS.good_3
test/etags/ETAGS.good_4
test/etags/ETAGS.good_5
test/etags/ETAGS.good_6
test/etags/ruby-src/test1.ru

index ca6fe51bdb6d93ab6c738ecda4dcaa187fd5b652..bb2758941a413ae001cb16666ebc4f9c56c7aac9 100644 (file)
@@ -4630,6 +4630,7 @@ static void
 Ruby_functions (FILE *inf)
 {
   char *cp = NULL;
+  bool reader = false, writer = false, alias = false, continuation = false;
 
   LOOP_ON_INPUT_LINES (inf, lb, cp)
     {
@@ -4638,7 +4639,9 @@ Ruby_functions (FILE *inf)
       char *name;
 
       cp = skip_spaces (cp);
-      if (c_isalpha (*cp) && c_isupper (*cp)) /* constants */
+      if (!continuation
+         /* Constants.  */
+         && c_isalpha (*cp) && c_isupper (*cp))
        {
          char *bp, *colon = NULL;
 
@@ -4661,9 +4664,11 @@ Ruby_functions (FILE *inf)
                }
            }
        }
-      else if ((is_method = LOOKING_AT (cp, "def")) /* module/class/method */
-              || (is_class = LOOKING_AT (cp, "class"))
-              || LOOKING_AT (cp, "module"))
+      else if (!continuation
+              /* Modules, classes, methods.  */
+              && ((is_method = LOOKING_AT (cp, "def"))
+                  || (is_class = LOOKING_AT (cp, "class"))
+                  || LOOKING_AT (cp, "module")))
        {
          const char self_name[] = "self.";
          const size_t self_size1 = sizeof (self_name) - 1;
@@ -4701,21 +4706,27 @@ Ruby_functions (FILE *inf)
       else
        {
          /* Tag accessors and aliases.  */
+
+         if (!continuation)
+           reader = writer = alias = false;
+
          while (*cp && *cp != '#')
            {
-             bool reader = false, writer = false, alias = false;
-
-             if (LOOKING_AT (cp, "attr_reader"))
-               reader = true;
-             else if (LOOKING_AT (cp, "attr_writer"))
-               writer = true;
-             else if (LOOKING_AT (cp, "attr_accessor"))
+             if (!continuation)
                {
-                 reader = true;
-                 writer = true;
+                 reader = writer = alias = false;
+                 if (LOOKING_AT (cp, "attr_reader"))
+                   reader = true;
+                 else if (LOOKING_AT (cp, "attr_writer"))
+                   writer = true;
+                 else if (LOOKING_AT (cp, "attr_accessor"))
+                   {
+                     reader = true;
+                     writer = true;
+                   }
+                 else if (LOOKING_AT (cp, "alias_method"))
+                   alias = true;
                }
-             else if (LOOKING_AT (cp, "alias_method"))
-               alias = true;
              if (reader || writer || alias)
                {
                  do {
@@ -4725,9 +4736,12 @@ Ruby_functions (FILE *inf)
                      np++;
                    cp = skip_name (cp);
                    if (reader)
-                     make_tag (np, cp - np, true,
-                               lb.buffer, cp - lb.buffer + 1,
-                               lineno, linecharno);
+                     {
+                       make_tag (np, cp - np, true,
+                                 lb.buffer, cp - lb.buffer + 1,
+                                 lineno, linecharno);
+                       continuation = false;
+                     }
                    if (writer)
                      {
                        size_t name_len = cp - np + 1;
@@ -4737,19 +4751,34 @@ Ruby_functions (FILE *inf)
                        memcpy (wr_name + name_len - 1, "=", 2);
                        pfnote (wr_name, true, lb.buffer, cp - lb.buffer + 1,
                                lineno, linecharno);
+                       continuation = false;
                      }
                    if (alias)
                      {
-                       make_tag (np, cp - np, true,
-                                 lb.buffer, cp - lb.buffer + 1,
-                                 lineno, linecharno);
+                       if (!continuation)
+                         make_tag (np, cp - np, true,
+                                   lb.buffer, cp - lb.buffer + 1,
+                                   lineno, linecharno);
+                       continuation = false;
                        while (*cp && *cp != '#' && *cp != ';')
-                         cp++;
+                         {
+                           if (*cp == ',')
+                             continuation = true;
+                           else if (!c_isspace (*cp))
+                             continuation = false;
+                           cp++;
+                         }
+                       if (*cp == ';')
+                         continuation = false;
                      }
-                 } while (*cp == ','
+                   cp = skip_spaces (cp);
+                 } while ((alias
+                           ? (*cp == ',')
+                           : (continuation = (*cp == ',')))
                           && (cp = skip_spaces (cp + 1), *cp && *cp != '#'));
                }
-             cp = skip_name (cp);
+             if (*cp != '#')
+               cp = skip_name (cp);
              while (*cp && *cp != '#' && notinname (*cp))
                cp++;
            }
index afb1096b08497fa32a65e6798637a9d10eca5410..b78c194ac440d7ff0cef6e980b38411d2bfcb03a 100644 (file)
@@ -454,7 +454,7 @@ Condition_Variable/t        ada-src/2ataspri.ads    /^   type Condition_Variable is privat
 Condition_Variable/t   ada-src/2ataspri.ads    /^   type Condition_Variable is$/
 Configure      pyt-src/server.py       /^class Configure(Frame, ControlEdit):$/
 ConfirmQuit    pyt-src/server.py       /^def ConfirmQuit(frame, context):$/
-Constant       ruby-src/test1.ru       35
+Constant       ruby-src/test1.ru       39
 ControlEdit    pyt-src/server.py       /^class ControlEdit(Frame):$/
 Controls       pyt-src/server.py       /^class Controls:$/
 CopyTextString pas-src/common.pas      /^function CopyTextString;(*($/
@@ -2556,11 +2556,12 @@ bar     c-src/c.c       /^void bar() {while(0) {}}$/
 bar    c.c     143
 bar    c-src/h.h       19
 bar    cp-src/x.cc     /^XX::bar()$/
-bar=   ruby-src/test1.ru       /^      attr_writer :bar$/
+bar=   ruby-src/test1.ru       /^      attr_writer :bar,$/
 bas_syn        prol-src/natded.prolog  /^bas_syn(n(_)).$/
 base   c-src/emacs/src/lisp.h  2188
 base   cp-src/c.C      /^double base (void) const { return rng_base;  }$/
 base   cp-src/Range.h  /^  double base (void) const { return rng_base;  }$/
+baz=   ruby-src/test1.ru       /^                  :baz,$/
 bb     c.c     275
 bbb    c.c     251
 bbbbbb c-src/h.h       113
@@ -3514,6 +3515,7 @@ modifier_symbols  c-src/emacs/src/keyboard.c      6327
 modify_event_symbol    c-src/emacs/src/keyboard.c      /^modify_event_symbol (ptrdiff_t symbol_num, int mod/
 module_class_method    ruby-src/test.rb        /^    def ModuleExample.module_class_method$/
 module_instance_method ruby-src/test.rb        /^    def module_instance_method$/
+more=  ruby-src/test1.ru       /^                  :more$/
 more_aligned_int       c.c     165
 morecore_nolock        c-src/emacs/src/gmalloc.c       /^morecore_nolock (size_t size)$/
 morecore_recursing     c-src/emacs/src/gmalloc.c       604
@@ -3879,7 +3881,7 @@ questo    ../c/c.web      34
 quiettest      make-src/Makefile       /^quiettest:$/
 quit_char      c-src/emacs/src/keyboard.c      192
 quit_throw_to_read_char        c-src/emacs/src/keyboard.c      /^quit_throw_to_read_char (bool from_signal)$/
-qux    ruby-src/test1.ru       /^      alias_method :qux, :tee$/
+qux    ruby-src/test1.ru       /^      alias_method :qux, :tee, attr_accessor :bogu/
 qux=   ruby-src/test1.ru       /^      def qux=(tee)$/
 r0     c-src/sysdep.h  54
 r1     c-src/sysdep.h  55
@@ -3904,8 +3906,8 @@ read      cp-src/conway.hpp       /^    char read() { return alive; }$/
 read   php-src/lce_functions.php       /^      function read()$/
 read-key-sequence      c-src/emacs/src/keyboard.c      /^DEFUN ("read-key-sequence", Fread_key_sequence, Sr/
 read-key-sequence-vector       c-src/emacs/src/keyboard.c      /^DEFUN ("read-key-sequence-vector", Fread_key_seque/
-read1  ruby-src/test1.ru       /^      attr_reader :read1, :read2; attr_writer :wri/
-read2  ruby-src/test1.ru       /^      attr_reader :read1, :read2; attr_writer :wri/
+read1  ruby-src/test1.ru       /^      attr_reader :read1 , :read2; attr_writer :wr/
+read2  ruby-src/test1.ru       /^      attr_reader :read1 , :read2; attr_writer :wr/
 read_char      c-src/emacs/src/keyboard.c      /^read_char (int commandflag, Lisp_Object map,$/
 read_char_help_form_unwind     c-src/emacs/src/keyboard.c      /^read_char_help_form_unwind (void)$/
 read_char_minibuf_menu_prompt  c-src/emacs/src/keyboard.c      /^read_char_minibuf_menu_prompt (int commandflag,$/
@@ -4164,6 +4166,7 @@ substitute        c-src/etags.c   /^substitute (char *in, char *out, struct re_registe/
 subsubsec=\relax       tex-src/texinfo.tex     /^\\let\\appendixsubsubsec=\\relax$/
 subsubsection  perl-src/htlmify-cystic 27
 subsubsection=\relax   tex-src/texinfo.tex     /^\\let\\appendixsubsubsection=\\relax$/
+subtle ruby-src/test1.ru       /^                   :tee ; attr_reader :subtle$/
 subtree        prol-src/natded.prolog  /^subtree(T,T).$/
 suffix c-src/etags.c   186
 suffixes       c-src/etags.c   195
@@ -4450,8 +4453,8 @@ womboid   c-src/h.h       75
 word_size      c-src/emacs/src/lisp.h  1473
 write  php-src/lce_functions.php       /^      function write()$/
 write  php-src/lce_functions.php       /^      function write($save="yes")$/
-write1=        ruby-src/test1.ru       /^      attr_reader :read1, :read2; attr_writer :wri/
-write2=        ruby-src/test1.ru       /^      attr_reader :read1, :read2; attr_writer :wri/
+write1=        ruby-src/test1.ru       /^      attr_reader :read1 , :read2; attr_writer :wr/
+write2=        ruby-src/test1.ru       /^      attr_reader :read1 , :read2; attr_writer :wr/
 write_abbrev   c-src/abbrev.c  /^write_abbrev (sym, stream)$/
 write_classname        c-src/etags.c   /^write_classname (linebuffer *cn, const char *quali/
 write_lex      prol-src/natded.prolog  /^write_lex(File):-$/
@@ -4492,6 +4495,7 @@ xref-location-marker      el-src/emacs/lisp/progmodes/etags.el    /^(cl-defmethod xref-l
 xref-make-etags-location       el-src/emacs/lisp/progmodes/etags.el    /^(defun xref-make-etags-location (tag-info file)$/
 xrnew  c-src/etags.c   /^#define xrnew(op, n, Type) ((op) = (Type *) xreall/
 xx     make-src/Makefile       /^xx="this line is here because of a fontlock bug$/
+xyz    ruby-src/test1.ru       /^      alias_method :xyz,$/
 y      cp-src/conway.hpp       7
 y      cp-src/clheir.hpp       49
 y      cp-src/clheir.hpp       58
index 87ab88fd6c2830dfce401be36766928d0df43a3d..1390187863fb708767b26d7d6d4ba9a92999e91a 100644 (file)
@@ -3061,7 +3061,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,655
+ruby-src/test1.ru,828
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3075,15 +3075,19 @@ module A\7f9,57
       def qux=(\7fqux=\ 122,194
     def X\7f25,232
       attr_reader :foo\7ffoo\ 126,242
-      attr_reader :read1,\7fread1\ 127,265
-      attr_reader :read1, :read2;\7fread2\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1,\7fwrite1=\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
-      attr_writer :bar\7fbar=\ 128,328
-      attr_accessor :tee\7ftee\ 129,351
-      attr_accessor :tee\7ftee=\ 129,351
-      alias_method :qux,\7fqux\ 130,376
-A::Constant \7fConstant\ 135,425
+      attr_reader :read1 \7fread1\ 127,265
+      attr_reader :read1 , :read2;\7fread2\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
+      attr_writer :bar,\7fbar=\ 128,329
+                  :baz,\7fbaz=\ 129,353
+                  :more\7fmore=\ 130,377
+      attr_accessor :tee\7ftee\ 131,401
+      attr_accessor :tee\7ftee=\ 131,401
+      alias_method :qux,\7fqux\ 132,426
+      alias_method :xyz,\7fxyz\ 133,478
+                   :tee ; attr_reader :subtle\7fsubtle\ 134,503
+A::Constant \7fConstant\ 139,568
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 861598232a93d5918cc6ab22382ed7fcec9345f8..f8b1546ef48f00b9c9782bc2cabdc89d7355dd64 100644 (file)
@@ -3631,7 +3631,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,655
+ruby-src/test1.ru,828
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3645,15 +3645,19 @@ module A\7f9,57
       def qux=(\7fqux=\ 122,194
     def X\7f25,232
       attr_reader :foo\7ffoo\ 126,242
-      attr_reader :read1,\7fread1\ 127,265
-      attr_reader :read1, :read2;\7fread2\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1,\7fwrite1=\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
-      attr_writer :bar\7fbar=\ 128,328
-      attr_accessor :tee\7ftee\ 129,351
-      attr_accessor :tee\7ftee=\ 129,351
-      alias_method :qux,\7fqux\ 130,376
-A::Constant \7fConstant\ 135,425
+      attr_reader :read1 \7fread1\ 127,265
+      attr_reader :read1 , :read2;\7fread2\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
+      attr_writer :bar,\7fbar=\ 128,329
+                  :baz,\7fbaz=\ 129,353
+                  :more\7fmore=\ 130,377
+      attr_accessor :tee\7ftee\ 131,401
+      attr_accessor :tee\7ftee=\ 131,401
+      alias_method :qux,\7fqux\ 132,426
+      alias_method :xyz,\7fxyz\ 133,478
+                   :tee ; attr_reader :subtle\7fsubtle\ 134,503
+A::Constant \7fConstant\ 139,568
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 52d5a613b616f0ef589cc0e8fd48e215a3c0346a..a1e895af7f6f6721c18c5dc938586f687ee7fe38 100644 (file)
@@ -3408,7 +3408,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,655
+ruby-src/test1.ru,828
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3422,15 +3422,19 @@ module A\7f9,57
       def qux=(\7fqux=\ 122,194
     def X\7f25,232
       attr_reader :foo\7ffoo\ 126,242
-      attr_reader :read1,\7fread1\ 127,265
-      attr_reader :read1, :read2;\7fread2\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1,\7fwrite1=\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
-      attr_writer :bar\7fbar=\ 128,328
-      attr_accessor :tee\7ftee\ 129,351
-      attr_accessor :tee\7ftee=\ 129,351
-      alias_method :qux,\7fqux\ 130,376
-A::Constant \7fConstant\ 135,425
+      attr_reader :read1 \7fread1\ 127,265
+      attr_reader :read1 , :read2;\7fread2\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
+      attr_writer :bar,\7fbar=\ 128,329
+                  :baz,\7fbaz=\ 129,353
+                  :more\7fmore=\ 130,377
+      attr_accessor :tee\7ftee\ 131,401
+      attr_accessor :tee\7ftee=\ 131,401
+      alias_method :qux,\7fqux\ 132,426
+      alias_method :xyz,\7fxyz\ 133,478
+                   :tee ; attr_reader :subtle\7fsubtle\ 134,503
+A::Constant \7fConstant\ 139,568
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 333274cb253d484b1ce577d189148d409adcecf0..32390fab3246fad0f010a602d2c4d6cdca885740 100644 (file)
@@ -3225,7 +3225,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,655
+ruby-src/test1.ru,828
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3239,15 +3239,19 @@ module A\7f9,57
       def qux=(\7fqux=\ 122,194
     def X\7f25,232
       attr_reader :foo\7ffoo\ 126,242
-      attr_reader :read1,\7fread1\ 127,265
-      attr_reader :read1, :read2;\7fread2\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1,\7fwrite1=\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
-      attr_writer :bar\7fbar=\ 128,328
-      attr_accessor :tee\7ftee\ 129,351
-      attr_accessor :tee\7ftee=\ 129,351
-      alias_method :qux,\7fqux\ 130,376
-A::Constant \7fConstant\ 135,425
+      attr_reader :read1 \7fread1\ 127,265
+      attr_reader :read1 , :read2;\7fread2\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
+      attr_writer :bar,\7fbar=\ 128,329
+                  :baz,\7fbaz=\ 129,353
+                  :more\7fmore=\ 130,377
+      attr_accessor :tee\7ftee\ 131,401
+      attr_accessor :tee\7ftee=\ 131,401
+      alias_method :qux,\7fqux\ 132,426
+      alias_method :xyz,\7fxyz\ 133,478
+                   :tee ; attr_reader :subtle\7fsubtle\ 134,503
+A::Constant \7fConstant\ 139,568
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index fdf2329ee064f2cb4db98d19938a6abd7a068235..ee19bcfc9d25bb48e2f18ffaaed8983a043d8b67 100644 (file)
@@ -4142,7 +4142,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,655
+ruby-src/test1.ru,828
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -4156,15 +4156,19 @@ module A\7f9,57
       def qux=(\7fqux=\ 122,194
     def X\7f25,232
       attr_reader :foo\7ffoo\ 126,242
-      attr_reader :read1,\7fread1\ 127,265
-      attr_reader :read1, :read2;\7fread2\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1,\7fwrite1=\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
-      attr_writer :bar\7fbar=\ 128,328
-      attr_accessor :tee\7ftee\ 129,351
-      attr_accessor :tee\7ftee=\ 129,351
-      alias_method :qux,\7fqux\ 130,376
-A::Constant \7fConstant\ 135,425
+      attr_reader :read1 \7fread1\ 127,265
+      attr_reader :read1 , :read2;\7fread2\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
+      attr_writer :bar,\7fbar=\ 128,329
+                  :baz,\7fbaz=\ 129,353
+                  :more\7fmore=\ 130,377
+      attr_accessor :tee\7ftee\ 131,401
+      attr_accessor :tee\7ftee=\ 131,401
+      alias_method :qux,\7fqux\ 132,426
+      alias_method :xyz,\7fxyz\ 133,478
+                   :tee ; attr_reader :subtle\7fsubtle\ 134,503
+A::Constant \7fConstant\ 139,568
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 95d59d3db39b9e0186e62f67c06ed5e4c91faf96..f4d9ab8c1a12700a32605a3fb6738d0961c87024 100644 (file)
@@ -4142,7 +4142,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,655
+ruby-src/test1.ru,828
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -4156,15 +4156,19 @@ module A\7f9,57
       def qux=(\7fqux=\ 122,194
     def X\7f25,232
       attr_reader :foo\7ffoo\ 126,242
-      attr_reader :read1,\7fread1\ 127,265
-      attr_reader :read1, :read2;\7fread2\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1,\7fwrite1=\ 127,265
-      attr_reader :read1, :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
-      attr_writer :bar\7fbar=\ 128,328
-      attr_accessor :tee\7ftee\ 129,351
-      attr_accessor :tee\7ftee=\ 129,351
-      alias_method :qux,\7fqux\ 130,376
-A::Constant \7fConstant\ 135,425
+      attr_reader :read1 \7fread1\ 127,265
+      attr_reader :read1 , :read2;\7fread2\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1,\7fwrite1=\ 127,265
+      attr_reader :read1 , :read2; attr_writer :write1, :write2\7fwrite2=\ 127,265
+      attr_writer :bar,\7fbar=\ 128,329
+                  :baz,\7fbaz=\ 129,353
+                  :more\7fmore=\ 130,377
+      attr_accessor :tee\7ftee\ 131,401
+      attr_accessor :tee\7ftee=\ 131,401
+      alias_method :qux,\7fqux\ 132,426
+      alias_method :xyz,\7fxyz\ 133,478
+                   :tee ; attr_reader :subtle\7fsubtle\ 134,503
+A::Constant \7fConstant\ 139,568
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 75dcd51bbe0bcd182f20a4f4f86e8b052954bf04..bc9dbec36a230038d45b701679791de2c181b6cf 100644 (file)
@@ -24,10 +24,14 @@ module A
     end
     def X
       attr_reader :foo
-      attr_reader :read1, :read2; attr_writer :write1, :write2
-      attr_writer :bar
+      attr_reader :read1 , :read2; attr_writer :write1, :write2
+      attr_writer :bar,
+                  :baz,
+                  :more
       attr_accessor :tee
-      alias_method :qux, :tee
+      alias_method :qux, :tee, attr_accessor :bogus
+      alias_method :xyz,
+                   :tee ; attr_reader :subtle
     end
   end
 end