Version 1.8 of ais/ai-00116.txt
!standard 09.01 (09) 00-06-21 AI95-00116/05
!class binding interpretation 98-03-27
!status Corrigendum 2000 99-07-28
!status WG9 approved 98-06-12
!status ARG Approved (with changes) 13-0-0 97-11-16
!status work item 96-04-04
!status received 96-04-04
!priority Low
!difficulty Easy
!qualifier Omission
!subject Elaboration of a task with no task_definition
!summary
For a task declaration with no task_definition, an empty
task_definition is assumed.
!question
A legal task_type_declaration is
task type TT;
By the grammar in 9.1(2), this task_type_declaration does not
include a task_definition.
9.1(10) says that the elaboration of a task declaration elaborates
the task_definition; what if there isn't one? (An empty task_definition
is elaborated.)
9.1(11) says the elaboration of a task_definition creates the task
type and its first subtype; if there is no task_definition, when are
the task type and its first subtype created? (There is an empty
task_definition.)
!recommendation
(See summary.)
!wording
Insert after paragraph 9.1 (9):
For a task declaration without a task_definition, a
task_definition without task_items is assumed.
!discussion
The question not only applies to the syntax of 9.1(2) , but equally
to the syntax of 9.1(3), i.e., to all task declarations.
The intent is clear. The new wording means that
task type TT;
is equivalent to
task type TT is
end TT;
providing an implicit, empty task_definition.
!corrigendum 9.1(9)
Insert after the paragraph:
A task_definition defines a task type and its first subtype. The first
list of task_items of a task_definition, together with the
known_discriminant_part, if any, is called the visible part of the
task unit. The optional list of task_items after the reserved word
private is called the private part of the task unit.
the new paragraph:
For a task declaration without a task_definition, a
task_definition without task_items is assumed.
!ACATS test
ACATS tests C650001, C940001, and C940005 (and some others) use the
construct in question.
!appendix
!section 9.1(02)
!subject Elaboration of task type with no task_definition
!reference RM95-9.1(2)
!reference RM95-9.1(10,11)
!from Keith Thompson 95-11-17
!reference 95-5392.a Keith Thompson 95-11-17>>
A legal task_type_declaration is
task type TT;
By the grammar in paragraph 2, this task_type_declaration does not
include a task_definition.
Paragraph 10 says that the elaboration of a task declaration elaborates
the task_definition; what if there isn't one?
Paragraph 11 says the elaboration of a task_definition creates the task
type and its first subtype; if there is no task_definition, when are
the task type and its first subtype created?
The intent seems obvious. A good fix would be to state that
task type TT;
is equivalent to
task type TT is
end TT;
providing an implicit task_definition.
****************************************************************
Questions? Ask the ACAA Technical Agent