1-- C87B17A.ADA 2 3-- Grant of Unlimited Rights 4-- 5-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, 6-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained 7-- unlimited rights in the software and documentation contained herein. 8-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making 9-- this public release, the Government intends to confer upon all 10-- recipients unlimited rights equal to those held by the Government. 11-- These rights include rights to use, duplicate, release or disclose the 12-- released technical data and computer software in whole or in part, in 13-- any manner and for any purpose whatsoever, and to have or permit others 14-- to do so. 15-- 16-- DISCLAIMER 17-- 18-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR 19-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED 20-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE 21-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE 22-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A 23-- PARTICULAR PURPOSE OF SAID MATERIAL. 24--* 25-- CHECK THAT OVERLOADING RESOLUTION USES THE RULE THAT: 26 27-- THE INITIALIZATION EXPRESSION FOR A DEFAULT DISCRIMINANT 28-- IN A TYPE DECLARATION MUST MATCH THE DISCRIMINANT'S EXPLICIT 29-- TYPEMARK. 30-- 31-- THE THREE KINDS OF TYPE DECLARATIONS TESTED HERE ARE: 32-- 33-- (A): RECORD TYPE. 34-- (B): PRIVATE TYPE. 35-- (C): INCOMPLETE RECORD TYPE. 36 37-- TRH 18 JUNE 82 38 39WITH REPORT; USE REPORT; 40 41PROCEDURE C87B17A IS 42 43 TYPE WHOLE IS NEW INTEGER RANGE 0..INTEGER'LAST; 44 TYPE CITRUS IS (LEMON, LIME, ORANGE); 45 TYPE HUE IS (RED, ORANGE, YELLOW); 46 47 FUNCTION F1 (X, Y : INTEGER) RETURN INTEGER IS 48 BEGIN 49 RETURN -1; 50 END F1; 51 52 FUNCTION F1 (X, Y : WHOLE) RETURN WHOLE IS 53 BEGIN 54 RETURN 0; 55 END F1; 56 57 FUNCTION F1 (X, Y : INTEGER) RETURN HUE IS 58 BEGIN 59 RETURN ORANGE; 60 END F1; 61 62 FUNCTION F1 (X, Y : INTEGER) RETURN CITRUS IS 63 BEGIN 64 RETURN ORANGE; 65 END F1; 66 67BEGIN 68 TEST ("C87B17A","OVERLOADED INITIALIZATION EXPRESSIONS" & 69 " IN DEFAULT DISCRIMINANTS"); 70 71 DECLARE 72 73 FUNCTION "+" (X, Y : INTEGER) RETURN INTEGER 74 RENAMES F1; 75 76 FUNCTION "+" (X, Y : WHOLE) RETURN WHOLE 77 RENAMES F1; 78 79 FUNCTION "+" (X, Y : INTEGER) RETURN HUE 80 RENAMES F1; 81 82 FUNCTION "+" (X, Y : INTEGER) RETURN CITRUS 83 RENAMES F1; 84 85 TYPE REC1 (I1 : INTEGER := 0 + 0; H1 : HUE := F1 (0, 0) ) IS 86 RECORD 87 NULL; 88 END RECORD; 89 90 PACKAGE PVT IS 91 TYPE REC2 (H2 : HUE := ORANGE; W2 : WHOLE := 0 + 0 ) 92 IS PRIVATE; 93 PRIVATE 94 TYPE REC2 (H2 : HUE := ORANGE; W2 : WHOLE := 0 + 0 ) IS 95 RECORD 96 NULL; 97 END RECORD; 98 END PVT; 99 USE PVT; 100 101 TYPE REC3 (C1 : CITRUS := ORANGE; W1 : WHOLE := "+" (0, 0)); 102 103 TYPE LINK IS ACCESS REC3; 104 105 TYPE REC3 (C1 : CITRUS := ORANGE; W1 : WHOLE := "+" (0, 0)) IS 106 RECORD 107 NULL; 108 END RECORD; 109 110 R1 : REC1; 111 R2 : REC2; 112 R3 : REC3; 113 114 BEGIN 115 IF R1.I1 /= -1 OR HUE'POS (R1.H1) /= 1 THEN 116 FAILED ("(A): RESOLUTION INCORRECT FOR RECORD TYPES"); 117 END IF; 118 119 IF HUE'POS (R2.H2) /= 1 OR R2.W2 /= 0 THEN 120 FAILED ("(B): RESOLUTION INCORRECT FOR PRIVATE TYPES"); 121 END IF; 122 123 IF CITRUS'POS (R3.C1) /= 2 OR R3.W1 /= 0 THEN 124 FAILED ("(C): RESOLUTION INCORRECT FOR INCOMPLETE" & 125 " RECORD TYPES"); 126 END IF; 127 END; 128 129 RESULT; 130END C87B17A; 131