Version 1.1 of ai12s/ai12-0194-1.txt

Unformatted version of ai12s/ai12-0194-1.txt version 1.1
Other versions for file ai12s/ai12-0194-1.txt

!standard 13.1.1(17/3)          16-06-06 AI12-0194-1/01
!class binding interpretation 16-06-06
!status work item 16-06-06
!status received 16-02-03
!priority Low
!difficulty Easy
!qualifier Omission
!subject Language-defined aspects and entry bodies
Language-defined aspects are not allowed on entry bodies.
(See Summary.)
Modify 13.1.1(17/3):
There are no language-defined aspects that may be specified on a renaming_declaration, a generic_formal_parameter_declaration, a subunit, a package_body, a task_body, a protected_body, {an entry_body, }or a body_stub other than a subprogram_body_stub.
13.1.1(17/3) applies to all kinds of bodies other than those that can act as specifications. Entry_Body should be included; this clearly was an oversight of AI12-0169-1 (which added these aspect_specifications).
No ASIS effect.
!ACATS test
An ACATS B-Test should be created.

From: Randy Brukardt
Sent: Wednesday, February  3, 2016  7:54 PM

n AI12-0169-1, we allowed aspect specifications on entry bodies.

However, we only made a syntax change. In particular, we didn't add a rule 
like 13.1.1(17/3) or 13.1.1(18/4) for entry bodies.

As such, it doesn't appear that any rule prevents putting Pre on an entry

    entry Fooey (P : in out Natural) with Pre => P mod 2 = 0 is
    end Fooey;

This appears legal, while the similar subprogram body would be illegal.

It's bizarre that we ban language-defined aspects on all bodies *except* entry
bodies. I have to think this is an oversight (probably happened because we
were too tired after arguing about the syntax).


From: Tucker Taft
Sent: Wednesday, February  3, 2016  9:41 PM

Agreed. Shouldn't be legal.


Questions? Ask the ACAA Technical Agent