Version 1.2 of ais/ai-00031.txt

Unformatted version of ais/ai-00031.txt version 1.2
Other versions for file ais/ai-00031.txt

!standard 13.06 (02)          99-07-08 AI95-00031/03
!class confirmation 95-06-25
!status WG9 approved 96-12-07
!status ARG approved 11-0-0 96-10-07
!status ARG approved 8-0-0 96-06-17
!status work item 95-06-25
!status received 95-06-25
!priority Low
!difficulty Easy
!subject Unpacking a record type with primitive subprograms
!summary
The method outlined in 13.6 for changing representation is not allowed if the derived type has inherited (user-defined) subprograms.
!question
13.6(2) states, "To convert a record from one representation to another, two record types with a common ancestor type need to be declared, with no inherited subprograms."
Since this paragraph is bracketed in the AARM, the inadmissability of types with primitive subprograms is presumably a ramification of rules given elsewhere.
Where?
!response
It is forbidden by 13.1(10): "For an untagged derived type, no type-related representation items are allowed if the parent type ... has any user-defined primitive subprograms."
Note that predefined operators are not "inherited"; a type just gets them by virtue of being in some language-defined class of types.
!ACATS test
Create a B-Test which checks that type-related representation items are not allowed for an untagged derived type if the parent type has any user-defined primitive subprograms.
!appendix

!section 13.6(2)
!subject Unpacking a record type with primitive subprograms
!reference AARM-13.6(2);6.0
!from Norman Cohen
!reference as: 95-5100.a Norman H. Cohen 95-2-20>>
!discussion

This paragraph states, "To convert a record from one representation to
another, two record types with a common ancestor type need to be
declared, with no inherited subprograms."

Since this paragraph is bracketed, the inadmissability of types with
primitive subprograms is presumably a ramification of rules given
elsewhere.

Where?

****************************************************************

Questions? Ask the ACAA Technical Agent