-- BC3502I.ADA -- Grant of Unlimited Rights -- -- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, -- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained -- unlimited rights in the software and documentation contained herein. -- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making -- this public release, the Government intends to confer upon all -- recipients unlimited rights equal to those held by the Government. -- These rights include rights to use, duplicate, release or disclose the -- released technical data and computer software in whole or in part, in -- any manner and for any purpose whatsoever, and to have or permit others -- to do so. -- -- DISCLAIMER -- -- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR -- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE -- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A -- PARTICULAR PURPOSE OF SAID MATERIAL. --* -- CHECK THAT WHEN A GENERIC FORMAL TYPE IS AN ACCESS TYPE, THE FORMAL -- TYPE IS ONLY MATCHED WHEN ITS DESIGNATED BASE TYPE IS THE SAME AS -- THE DESIGNATED TYPE OF THE ACTUAL PARAMTER. -- CHECK FOR WHEN THE DESIGNATED TYPE IS A GENERIC FORMAL TYPE DECLARED -- IN THE SAME FORMAL PART. -- CHECK FOR WHEN THE DESIGNATED TYPE IS AN ACCESS TYPE. -- SPS 5/25/82 PROCEDURE BC3502I IS -- ACCESS TO INTEGER TYPES -- TYPE AI IS ACCESS INTEGER; TYPE AI2 IS ACCESS INTEGER; TYPE NAI IS NEW AI; TYPE AN IS ACCESS NATURAL; TYPE NI IS NEW INTEGER RANGE 1 .. 10; TYPE ANI IS ACCESS NI; SUBTYPE CI IS INTEGER RANGE 1 .. 10; TYPE ACI IS ACCESS CI; TYPE ACI2 IS ACCESS INTEGER RANGE 1 .. 10; -- ACCESS TO CHARACTER AND BOOLEAN -- TYPE AC IS ACCESS CHARACTER; TYPE AB IS ACCESS BOOLEAN; -- ACCESS TO ARRAY TYPES -- TYPE ARR IS ARRAY (NI RANGE <>) OF ACI; TYPE AAR IS ACCESS ARR; TYPE ARR2 IS ARRAY (NI RANGE <>) OF ACI; TYPE AAR2 IS ACCESS ARR2; TYPE NAAR IS NEW AAR; -- ACCESS TO RECORD TYPES (WITHOUT DISCRIMINANTS) -- TYPE REC IS RECORD NULL; END RECORD; TYPE REC2 IS RECORD NULL; END RECORD; TYPE AREC IS ACCESS REC; TYPE NAREC IS NEW AREC; TYPE AREC2 IS ACCESS REC2; TYPE NREC IS NEW REC; TYPE ANREC IS ACCESS NREC; -- ACCESS TO RECORD TYPES (WITH DISCRIMINANTS) -- TYPE REC4 (D: INTEGER) IS RECORD NULL; END RECORD; TYPE AREC4 IS ACCESS REC4; -- ACCESS TO ACCESS TYPES -- TYPE AAI IS ACCESS AI; TYPE AAI2 IS ACCESS AI2; TYPE NAAI IS NEW AAI; TYPE ANAI IS ACCESS NAI; TYPE AAN IS ACCESS AN; TYPE AANI IS ACCESS ANI; TYPE AACI IS ACCESS ACI; TYPE AACI2 IS ACCESS ACI2; TYPE AAC IS ACCESS AC; TYPE NAAC IS NEW AAC; TYPE AAB IS ACCESS AB; TYPE NAAB IS NEW AAB; TYPE AAAR IS ACCESS AAR; TYPE AAAR2 IS ACCESS AAR2; TYPE ANAAR IS ACCESS NAAR; TYPE NAAAR IS NEW AAAR; TYPE AAREC IS ACCESS AREC; TYPE AAREC2 IS ACCESS AREC2; TYPE ANAREC IS ACCESS NAREC; TYPE AANREC IS ACCESS ANREC; TYPE AAREC4 IS ACCESS AREC4; TYPE NAAREC IS NEW AAREC; GENERIC TYPE T IS PRIVATE; TYPE FT IS ACCESS T; PACKAGE P IS END P; PACKAGE PAI1 IS NEW P (AI, AAI); -- OK. PACKAGE PAI2 IS NEW P (AI, NAAI); -- OK. PACKAGE PAI3 IS NEW P (AI, AAI2); -- ERROR: AAI2. PACKAGE PAI4 IS NEW P (AI, ANAI); -- ERROR: ANAI. PACKAGE PAI5 IS NEW P (AI, AAN); -- ERROR: AAN. PACKAGE PAI6 IS NEW P (AI, AACI); -- ERROR: AACI. PACKAGE PAI7 IS NEW P (AI, AI); -- ERROR: AI. PACKAGE PAI8 IS NEW P (AI, AANI); -- ERROR: AANI. PACKAGE PACI1 IS NEW P (ACI, AACI); -- OK. PACKAGE PACI2 IS NEW P (ACI, ACI); -- ERROR: ACI. PACKAGE PACI3 IS NEW P (ACI, AANI); -- ERROR: AANI. PACKAGE PACI4 IS NEW P (ACI, AACI2); -- ERROR: AACI2. PACKAGE PAC1 IS NEW P (AC, AAC); -- OK. PACKAGE PAC2 IS NEW P (AC, AAB); -- ERROR: AAB. PACKAGE PAC3 IS NEW P (AC, NAAC); -- OK. PACKAGE PAC4 IS NEW P (AC, NAAB); -- ERROR: NAAB. PACKAGE PAC5 IS NEW P (AC, AC); -- ERROR: AC. PACKAGE PAAR1 IS NEW P (AAR, AAAR); -- OK. PACKAGE PAAR2 IS NEW P (AAR, AAAR2); -- ERROR: AAAR2. PACKAGE PAAR3 IS NEW P (AAR, ANAAR); -- ERROR: ANAAR. PACKAGE PAAR5 IS NEW P (AAR, NAAAR); -- OK. PACKAGE PAAR6 IS NEW P (AAR, AAR); -- ERROR: AAR. PACKAGE PAREC1 IS NEW P (AREC, AAREC); -- OK. PACKAGE PAREC2 IS NEW P (AREC, AREC); -- ERROR: AREC. PACKAGE PAREC3 IS NEW P (AREC, ANAREC); -- ERROR: ANAREC. PACKAGE PAREC4 IS NEW P (AREC, AAREC2); -- ERROR: AAREC2. PACKAGE PAREC5 IS NEW P (AREC, AANREC); -- ERROR: AANREC. PACKAGE PAREC6 IS NEW P (AREC, NAAREC); -- OK. BEGIN NULL; END BC3502I;