Subject: bug#36548: closed (close)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 18 Aug 2019 17:03:02 +0000

Your bug report

#36548: 26.1; ada-mode 6.0.0 SAL.PROGRAMMER_ERROR: wisi_runtime.get_aug_token virtual terminal

which was filed against the emacs, ada-mode package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36548: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36548
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: close
From: Stephen Leake <[email-masked]>
To: [email-masked]
Date: Sun, 18 Aug 2019 10:02:01 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

-- 
-- Stephe

Subject: 26.1; ada-mode 6.0.0 SAL.PROGRAMMER_ERROR: wisi_runtime.get_aug_token virtual terminal
From: Ludovic Brenta <[email-masked]>
To: [email-masked]
Date: Mon, 08 Jul 2019 14:43:27 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: emacs, ada-mode
X-Debbugs-CC: [email-masked]
Severity: minor

Hello,

With this buffer contents, RET at the end of any line results in this 
message:

wisi--run-parse: unhandled exception: SAL.PROGRAMMER_ERROR: 
wisi_runtime.get_aug_token virtual terminal

(of course, the program text is not synctactically correct,
that's the point of an interactive editor :))

with Ada.Text_IO; use Ada.Text_IO;

procedure Field_parent is

type Root_Disc_T is (Rdisc1, Rdisc2, Rdisc3);

type Root_T (Root_Disc : Root_Disc_T := Root_Disc_T'First) is tagged 
limited record
   Root_Field : Integer;
   case Root_Disc is
     when Rdisc1 => Root_Field1 : Integer;
     when Rdisc2 => Root_Field2 : Float;
     when Rdisc3 => Root_Field3 : Character;
   end case;
end record;

type Child_Disc_T is (Cdisc1, Cdisc2, Cdisc3);

type Child_T (Child_Disc : Child_Disc_T := Child_Disc_T'First) is new 
Root_T (Rdisc2) with record
     is new Root_T  with record
   Child_Field : Integer;
   case Child_Disc is
     when Cdisc1 => Child_Field1 : Integer;
     when Cdisc2 => Child_Field2 : Float;
     when Cdisc3 => Child_Field4 : Character;
   end case;record;

type D1_T is (D1, D2, D3);
type D2_T is (D4, D5, D6);

type Var_T (Disc1 : D1_T, Disc2 : D2_T) is record T
   Field1 : Integer;

end record;

   Child : Child_T := (Cdisc1, Child_Field  => 1, Child_Field1 => 2, 
Root_Field => 3, Root_Field2 => 1.42);
begin
   Put_Line ("Hi:" & Child.Child_Field'Image);
end;

-- 
Ludovic Brenta.