blob: d4b9ef73f42493244bfa6df6224687ef45c5398d [file] [log] [blame]
-- C74211B.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 IMPLICITLY DECLARED INEQUALITY WHICH ACCOMPANIES AN
-- EXPLICIT DECLARATION OF EQUALITY HIDES OTHER IMPLICITLY DECLARED
-- HOMOGRAPHS, AND THAT DERIVED INEQUALITY HIDES PREDEFINED INEQUALITY.
-- DSJ 4/29/83
-- JBG 9/23/83
WITH REPORT;
PROCEDURE C74211B IS
USE REPORT;
BEGIN
TEST( "C74211B", "CHECK THAT HIDING OF IMPLICITLY DECLARED " &
"OPERATORS AND DERIVED SUBPROGRAMS IS DONE " &
"CORRECTLY REGARDLESS OF ORDER OF DECL'S");
DECLARE
PACKAGE P1 IS
TYPE LT1 IS LIMITED PRIVATE;
FUNCTION "="(L, R : LT1) RETURN BOOLEAN;
FUNCTION LT1_VALUE_2 RETURN LT1;
FUNCTION LT1_VALUE_4 RETURN LT1;
TYPE LT2 IS LIMITED PRIVATE;
PRIVATE
TYPE LT1 IS RANGE 1 .. 10;
TYPE LT2 IS RANGE 1 .. 10;
END P1;
USE P1;
PACKAGE P2 IS
TYPE LT3 IS LIMITED PRIVATE;
TYPE LT4 IS NEW LT1;
PRIVATE
FUNCTION "=" (L, R : LT3) RETURN BOOLEAN;
TYPE LT3 IS NEW LT1;
END P2;
USE P2;
PACKAGE BODY P1 IS
A , B : CONSTANT LT1 := 4;
C , D : CONSTANT LT2 := 6;
FUNCTION "=" (L, R : LT1) RETURN BOOLEAN IS
BEGIN
RETURN INTEGER(L) /= INTEGER(R);
END "=";
FUNCTION LT1_VALUE_2 RETURN LT1 IS
BEGIN
RETURN 2;
END LT1_VALUE_2;
FUNCTION LT1_VALUE_4 RETURN LT1 IS
BEGIN
RETURN 4;
END LT1_VALUE_4;
BEGIN
IF A = B THEN
FAILED ("PREDEFINED EQUALITY NOT HIDDEN BY " &
"EXPLICIT DECLARATION - LT1");
END IF;
IF C /= D THEN
FAILED ("WRONG PREDEFINED OPERATION - T2");
END IF;
END P1;
PACKAGE BODY P2 IS
FUNCTION U RETURN LT3 IS
BEGIN
RETURN LT1_VALUE_2;
END U;
FUNCTION V RETURN LT3 IS
BEGIN
RETURN LT1_VALUE_4;
END V;
FUNCTION W RETURN LT4 IS
BEGIN
RETURN LT1_VALUE_2;
END W;
FUNCTION X RETURN LT4 IS
BEGIN
RETURN LT1_VALUE_4;
END X;
FUNCTION "=" (L, R : LT3) RETURN BOOLEAN IS
BEGIN
RETURN NOT (LT1(L) = LT1(R));
END "=";
BEGIN
IF NOT (U /= V) THEN
FAILED ("DERIVED SUBPROGRAM NOT HIDDEN BY " &
"IMPLICITLY DECLARED INEQUALITY " &
"FROM EXPLICITLY DECLARED EQUALITY");
END IF;
IF NOT (LT3(W) = U) THEN
FAILED ("DERIVED SUBPROGRAM NOT HIDDEN BY " &
"EXPLICIT DECLARATION - '=' ");
END IF;
IF W /= X THEN
FAILED ("PREDEFINED OPERATOR NOT HIDDEN BY " &
"DERIVED SUBPROGRAM - '/=' ");
END IF;
IF NOT ( X = W ) THEN
FAILED ("PREDEFINED OPERATOR NOT HIDDEN BY " &
"DERIVED SUBPROGRAM - '=' ");
END IF;
END P2;
BEGIN
NULL;
END;
RESULT;
END C74211B;