A subset of this was posted on c.l.a recently,

package Eryndlia is
   type A is new B with
      -- a comment; TAB on this line results in error
      record
         C : D;
      end record;
   type A is new B with
      record  -- a comment.
         C : D;
      end record;
   type A is
     -- a comment.
      record
         C : D;
      end record;
   type A is new B
     -- a comment
     (5);
   type A is new B with
     -- a comment
     Volatile;
end Eryndlia;

TAB on all the lines except line 3 is good, but the error with TAB on line 3 is

Error: (error "cl-ecase failed: derived_type_definition, (aggregate 
aspect_specification_opt)")
save-excursion: Wrong type argument: number-or-marker-p, nil

If I toggle-debug-on-error, point is on the w of 'with' on line 2. The calling 
sequence (last call first) is

  ada-wisi-after-cache()
  ada-wisi-comment()
  wisi-indent-line()
  indent-for-tab-command(nil)

Might this be related to the two _opt's in derived_type_definition in 
ada-grammar.wy?

derived_type_definition
  : abstract_limited_opt NEW name and_interface_list_opt WITH record_definition
    (progn
      (wisi-statement-action [5 statement-other])
      (wisi-face-action [3 font-lock-type-face]))
  | abstract_limited_opt NEW name constraint_opt
    (wisi-face-action [3 font-lock-type-face])
  ;

I tried explicitly stating the _opt possibilities (e.g. one alternative with 
constraint, one without) but no joy.
_______________________________________________
Emacs-ada-mode mailing list
[email protected]
http://host114.hostmonster.com/mailman/listinfo/emacs-ada-mode_stephe-leake.org

Reply via email to