Skip to content

Commit 96d3399

Browse files
committed
Merge branch 'topic/vadim/extractor' into 'master'
Fix crash when documentation of element continues... Closes #133 See merge request eng/ide/gnatdoc!186
2 parents ebe3364 + 232ba3d commit 96d3399

File tree

3 files changed

+60
-39
lines changed

3 files changed

+60
-39
lines changed

source/gnatdoc-comments-extractor-trailing.adb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -769,7 +769,10 @@ package body GNATdoc.Comments.Extractor.Trailing is
769769
null;
770770

771771
elsif Last_Line + 1 = Location.End_Line then
772-
if Infos (Location.End_Line).Item.Kind /= None then
772+
if Location.End_Line in Infos'Range
773+
and then Infos (Location.End_Line).Item.Kind
774+
/= None
775+
then
773776
Apply;
774777
end if;
775778

testsuite/extractor/subprograms_gnat/subprograms_gnat.ads

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,17 @@ package Subprograms_GNAT is
130130

131131
function Test_2 (X : Integer; Y : Integer)
132132
return -- Multiline inlined description
133-
Integer; -- of the return value
133+
Integer; -- of the return value.
134134
-- Function with two parameters
135135
--
136136
-- @param X Value of X
137137
-- @param Y Value of Y
138138

139+
function Test_3
140+
return Integer; -- Multiline inlined description
141+
-- of the return value.
142+
-- Function without parameters
143+
139144
function Test_Aspects_1 return Integer with Inline;
140145
-- Parameterless single line function declaration.
141146

testsuite/extractor/subprograms_gnat/test.out

Lines changed: 50 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
<CompilationUnit subprograms_gnat.ads:5:1-263:22>
1+
<CompilationUnit subprograms_gnat.ads:5:1-268:22>
22
<AdaNodeList subprograms_gnat.ads:5:1-5:17>
33
<WithClause subprograms_gnat.ads:5:1-5:17>
44
<LimitedAbsent subprograms_gnat.ads:5:1-5:1>
55
<PrivateAbsent subprograms_gnat.ads:5:1-5:1>
66
<NameList subprograms_gnat.ads:5:6-5:16>
77
<Id "Interfaces" subprograms_gnat.ads:5:6-5:16>
8-
<LibraryItem subprograms_gnat.ads:7:1-263:22>
8+
<LibraryItem subprograms_gnat.ads:7:1-268:22>
99
<PrivateAbsent subprograms_gnat.ads:5:17-5:17>
10-
<PackageDecl ["Subprograms_GNAT"] subprograms_gnat.ads:7:1-263:22>
10+
<PackageDecl ["Subprograms_GNAT"] subprograms_gnat.ads:7:1-268:22>
1111
**************************
1212
\/ RAW <<HEADER>> ()
1313
\/ RAW <<LEADING>> ()
@@ -21,8 +21,8 @@ This is description of the package at the top of the specification.
2121
**************************
2222
<DefiningName "Subprograms_GNAT" subprograms_gnat.ads:7:9-7:25>
2323
<Id "Subprograms_GNAT" subprograms_gnat.ads:7:9-7:25>
24-
<PublicPart subprograms_gnat.ads:7:28-258:1>
25-
<AdaNodeList subprograms_gnat.ads:9:4-252:20>
24+
<PublicPart subprograms_gnat.ads:7:28-263:1>
25+
<AdaNodeList subprograms_gnat.ads:9:4-257:20>
2626
<PragmaNode subprograms_gnat.ads:9:4-9:24>
2727
<Id "Preelaborate" subprograms_gnat.ads:9:11-9:23>
2828
<BaseAssocList subprograms_gnat.ads:9:23-9:23>
@@ -292,15 +292,28 @@ Value of X
292292
Value of Y
293293
\/ RETURNS ()
294294
Multiline inlined description
295-
of the return value
295+
of the return value.
296296
\/ SNIPPET ada ()
297297
function Test_2 (X : Integer; Y : Integer)
298298
return
299299
Integer
300300
\/ DESCRIPTION ()
301301
Function with two parameters
302302
**************************
303-
<SubpDecl ["Test_Aspects_1"] subprograms_gnat.ads:139:4-139:55>
303+
<SubpDecl ["Test_3"] subprograms_gnat.ads:139:4-140:21>
304+
**************************
305+
\/ RAW <<CALLABLE>> ()
306+
Function without parameters
307+
\/ RETURNS ()
308+
Multiline inlined description
309+
of the return value.
310+
\/ SNIPPET ada ()
311+
function Test_3
312+
return Integer
313+
\/ DESCRIPTION ()
314+
Function without parameters
315+
**************************
316+
<SubpDecl ["Test_Aspects_1"] subprograms_gnat.ads:144:4-144:55>
304317
**************************
305318
\/ RAW <<CALLABLE>> ()
306319
Parameterless single line function declaration.
@@ -310,7 +323,7 @@ function Test_Aspects_1 return Integer
310323
\/ DESCRIPTION ()
311324
Parameterless single line function declaration.
312325
**************************
313-
<SubpDecl ["Test_Aspects_2"] subprograms_gnat.ads:142:4-144:18>
326+
<SubpDecl ["Test_Aspects_2"] subprograms_gnat.ads:147:4-149:18>
314327
**************************
315328
\/ RAW <<CALLABLE>> ()
316329
Parameterless single line function declaration.
@@ -320,7 +333,7 @@ function Test_Aspects_2 return Integer
320333
\/ DESCRIPTION ()
321334
Parameterless single line function declaration.
322335
**************************
323-
<SubpDecl ["Test_Aspects_3"] subprograms_gnat.ads:146:4-148:24>
336+
<SubpDecl ["Test_Aspects_3"] subprograms_gnat.ads:151:4-153:24>
324337
**************************
325338
\/ RAW <<CALLABLE>> ()
326339
Parameterless single line function declaration.
@@ -330,7 +343,7 @@ function Test_Aspects_3 return Integer
330343
\/ DESCRIPTION ()
331344
Parameterless single line function declaration.
332345
**************************
333-
<SubpDecl ["Test_Aspects_4"] subprograms_gnat.ads:150:4-153:24>
346+
<SubpDecl ["Test_Aspects_4"] subprograms_gnat.ads:155:4-158:24>
334347
**************************
335348
\/ RAW <<CALLABLE>> ()
336349
Parameterless single line function declaration.
@@ -342,7 +355,7 @@ function Test_Aspects_4
342355
\/ DESCRIPTION ()
343356
Parameterless single line function declaration.
344357
**************************
345-
<NullSubpDecl ["Test_Null"] subprograms_gnat.ads:159:4-159:32>
358+
<NullSubpDecl ["Test_Null"] subprograms_gnat.ads:164:4-164:32>
346359
**************************
347360
\/ RAW <<CALLABLE>> ()
348361
Parameterless null subprogram.
@@ -351,7 +364,7 @@ procedure Test_Null
351364
\/ DESCRIPTION ()
352365
Parameterless null subprogram.
353366
**************************
354-
<AbstractSubpDecl ["Test_Abstract"] subprograms_gnat.ads:162:4-162:63>
367+
<AbstractSubpDecl ["Test_Abstract"] subprograms_gnat.ads:167:4-167:63>
355368
**************************
356369
\/ RAW <<CALLABLE>> ()
357370
Abstract procedure.
@@ -361,7 +374,7 @@ procedure Test_Abstract (Self : Abstract_Type)
361374
\/ DESCRIPTION ()
362375
Abstract procedure.
363376
**************************
364-
<AbstractSubpDecl ["Test_Abstract"] subprograms_gnat.ads:165:4-165:77>
377+
<AbstractSubpDecl ["Test_Abstract"] subprograms_gnat.ads:170:4-170:77>
365378
**************************
366379
\/ RAW <<CALLABLE>> ()
367380
Abstract function.
@@ -372,7 +385,7 @@ function Test_Abstract (Self : Abstract_Type) return Boolean
372385
\/ DESCRIPTION ()
373386
Abstract function.
374387
**************************
375-
<ExprFunction ["Test_Expression_1"] subprograms_gnat.ads:168:4-168:53>
388+
<ExprFunction ["Test_Expression_1"] subprograms_gnat.ads:173:4-173:53>
376389
**************************
377390
\/ RAW <<CALLABLE>> ()
378391
Expression function.
@@ -382,7 +395,7 @@ function Test_Expression_1 return Integer
382395
\/ DESCRIPTION ()
383396
Expression function.
384397
**************************
385-
<ExprFunction ["Test_Expression_2"] subprograms_gnat.ads:171:4-174:15>
398+
<ExprFunction ["Test_Expression_2"] subprograms_gnat.ads:176:4-179:15>
386399
**************************
387400
\/ RAW <<CALLABLE>> ()
388401
Multiline expression function, documentation before expression.
@@ -393,7 +406,7 @@ function Test_Expression_2
393406
\/ DESCRIPTION ()
394407
Multiline expression function, documentation before expression.
395408
**************************
396-
<ExprFunction ["Test_Expression_3"] subprograms_gnat.ads:176:4-181:20>
409+
<ExprFunction ["Test_Expression_3"] subprograms_gnat.ads:181:4-186:20>
397410
**************************
398411
\/ RAW <<CALLABLE>> ()
399412
Multiline expression function, documentation before expression, aspects
@@ -406,7 +419,7 @@ function Test_Expression_3
406419
Multiline expression function, documentation before expression, aspects
407420
present.
408421
**************************
409-
<ExprFunction ["Test_Expression_4"] subprograms_gnat.ads:183:4-188:18>
422+
<ExprFunction ["Test_Expression_4"] subprograms_gnat.ads:188:4-193:18>
410423
**************************
411424
\/ RAW <<CALLABLE>> ()
412425
Multiline expression function, documentation after expression, aspects
@@ -419,7 +432,7 @@ function Test_Expression_4
419432
Multiline expression function, documentation after expression, aspects
420433
present.
421434
**************************
422-
<SubpDecl ["Test_Procedure_With_Pragma"] subprograms_gnat.ads:190:4-190:41>
435+
<SubpDecl ["Test_Procedure_With_Pragma"] subprograms_gnat.ads:195:4-195:41>
423436
**************************
424437
\/ RAW <<CALLABLE>> ()
425438
Documentation of the procedure with applied pragma.
@@ -428,12 +441,12 @@ procedure Test_Procedure_With_Pragma
428441
\/ DESCRIPTION ()
429442
Documentation of the procedure with applied pragma.
430443
**************************
431-
<PragmaNode subprograms_gnat.ads:191:4-191:47>
432-
<Id "Inline" subprograms_gnat.ads:191:11-191:17>
433-
<BaseAssocList subprograms_gnat.ads:191:19-191:45>
434-
<PragmaArgumentAssoc subprograms_gnat.ads:191:19-191:45>
435-
<Id "Test_Procedure_With_Pragma" subprograms_gnat.ads:191:19-191:45>
436-
<SubpDecl ["Test_With_Anonymous_Access_To_Subprogram_Parameter"] subprograms_gnat.ads:194:4-195:52>
444+
<PragmaNode subprograms_gnat.ads:196:4-196:47>
445+
<Id "Inline" subprograms_gnat.ads:196:11-196:17>
446+
<BaseAssocList subprograms_gnat.ads:196:19-196:45>
447+
<PragmaArgumentAssoc subprograms_gnat.ads:196:19-196:45>
448+
<Id "Test_Procedure_With_Pragma" subprograms_gnat.ads:196:19-196:45>
449+
<SubpDecl ["Test_With_Anonymous_Access_To_Subprogram_Parameter"] subprograms_gnat.ads:199:4-200:52>
437450
**************************
438451
\/ RAW <<CALLABLE>> ()
439452
Documentation of subprogram with parameter of anonymous access to
@@ -447,7 +460,7 @@ procedure Test_With_Anonymous_Access_To_Subprogram_Parameter
447460
Documentation of subprogram with parameter of anonymous access to
448461
subprogram type.
449462
**************************
450-
<ConcreteTypeDecl ["Access_Procedure_1"] subprograms_gnat.ads:199:4-199:48>
463+
<ConcreteTypeDecl ["Access_Procedure_1"] subprograms_gnat.ads:204:4-204:48>
451464
**************************
452465
\/ RAW <<CALLABLE>> ()
453466
Access to parameterless procedure.
@@ -456,7 +469,7 @@ type Access_Procedure_1 is access procedure;
456469
\/ DESCRIPTION ()
457470
Access to parameterless procedure.
458471
**************************
459-
<ConcreteTypeDecl ["Access_Procedure_2"] subprograms_gnat.ads:202:4-203:37>
472+
<ConcreteTypeDecl ["Access_Procedure_2"] subprograms_gnat.ads:207:4-208:37>
460473
**************************
461474
\/ RAW <<CALLABLE>> ()
462475
Access to procedure.
@@ -468,7 +481,7 @@ type Access_Procedure_2 is
468481
\/ DESCRIPTION ()
469482
Access to procedure.
470483
**************************
471-
<ConcreteTypeDecl ["Access_Procedure_3"] subprograms_gnat.ads:206:4-206:65>
484+
<ConcreteTypeDecl ["Access_Procedure_3"] subprograms_gnat.ads:211:4-211:65>
472485
**************************
473486
\/ RAW <<CALLABLE>> ()
474487
Access to procedure with two parameters.
@@ -484,7 +497,7 @@ type Access_Procedure_3 is access procedure (X, Y : Integer);
484497
\/ DESCRIPTION ()
485498
Access to procedure with two parameters.
486499
**************************
487-
<ConcreteTypeDecl ["Access_Function_1"] subprograms_gnat.ads:212:4-213:37>
500+
<ConcreteTypeDecl ["Access_Function_1"] subprograms_gnat.ads:217:4-218:37>
488501
**************************
489502
\/ RAW <<CALLABLE>> ()
490503
Access to parameterless function.
@@ -496,7 +509,7 @@ type Access_Function_1 is
496509
\/ DESCRIPTION ()
497510
Access to parameterless function.
498511
**************************
499-
<ConcreteTypeDecl ["Access_Function_2"] subprograms_gnat.ads:216:4-217:49>
512+
<ConcreteTypeDecl ["Access_Function_2"] subprograms_gnat.ads:221:4-222:49>
500513
**************************
501514
\/ RAW <<CALLABLE>> ()
502515
Access to function
@@ -513,7 +526,7 @@ type Access_Function_2 is
513526
\/ DESCRIPTION ()
514527
Access to function
515528
**************************
516-
<SubpDecl ["Test_VC20_013_Baz3"] subprograms_gnat.ads:227:4-231:22>
529+
<SubpDecl ["Test_VC20_013_Baz3"] subprograms_gnat.ads:232:4-236:22>
517530
**************************
518531
\/ RAW <<CALLABLE>> ()
519532
Text 1
@@ -530,7 +543,7 @@ function Test_VC20_013_Baz3
530543
\/ DESCRIPTION ()
531544
Text 1
532545
**************************
533-
<SubpDecl ["Baz_CS0038741"] subprograms_gnat.ads:239:4-244:8>
546+
<SubpDecl ["Baz_CS0038741"] subprograms_gnat.ads:244:4-249:8>
534547
**************************
535548
\/ RAW <<CALLABLE>> ()
536549
Baz
@@ -546,7 +559,7 @@ procedure Baz_CS0038741
546559
\/ DESCRIPTION ()
547560
Baz
548561
**************************
549-
<SubpDecl ["Test_Procedure_With_Broken_Comments"] subprograms_gnat.ads:251:4-252:20>
562+
<SubpDecl ["Test_Procedure_With_Broken_Comments"] subprograms_gnat.ads:256:4-257:20>
550563
**************************
551564
\/ RAW <<CALLABLE>> ()
552565
Documentation of the subprogram.
@@ -557,11 +570,11 @@ procedure Test_Procedure_With_Broken_Comments
557570
\/ DESCRIPTION ()
558571
Documentation of the subprogram.
559572
**************************
560-
<PrivatePart subprograms_gnat.ads:258:8-263:1>
561-
<AdaNodeList subprograms_gnat.ads:258:8-258:8>
562-
<EndName subprograms_gnat.ads:263:5-263:21>
563-
<Id "Subprograms_GNAT" subprograms_gnat.ads:263:5-263:21>
564-
<PragmaNodeList subprograms_gnat.ads:263:22-263:22>
573+
<PrivatePart subprograms_gnat.ads:263:8-268:1>
574+
<AdaNodeList subprograms_gnat.ads:263:8-263:8>
575+
<EndName subprograms_gnat.ads:268:5-268:21>
576+
<Id "Subprograms_GNAT" subprograms_gnat.ads:268:5-268:21>
577+
<PragmaNodeList subprograms_gnat.ads:268:22-268:22>
565578
<CompilationUnit monitor_loop.ads:7:1-7:45>
566579
<AdaNodeList monitor_loop.ads:7:1-7:1>
567580
<LibraryItem monitor_loop.ads:7:1-7:45>

0 commit comments

Comments
 (0)