Order dependency of compilation

From: Danforth, Douglas <"Danforth,>
Date: Tue, 30 Jan 2001 16:19:45 -0500

MODULE Foo;
TYPE
        R0 = POINTER TO ABSTRACT RECORD END;
        R1 = POINTER TO EXTENSIBLE RECORD(R0) END;
        R2 = POINTER TO RECORD(R1) END;

PROCEDURE(r: R0) P (VAR x: INTEGER), NEW, ABSTRACT; (* line 0 *)
PROCEDURE(r: R2) P (VAR span: INTEGER); BEGIN END P; (* line 2 *)
PROCEDURE(r: R1) P (VAR loc: INTEGER); BEGIN END P; (* line 1 *)

END Foo.

The above module compiles while I believe it should not.
If you interchange lines 1 and 2 then the compiler complains (correctly).

Why does the code compile as listed?

(This is true for both 1.3.3 and 1.4)

-Doug

---
Douglas G. Danforth, Ph.D. - Research Scientist
QuikCAT.com   6700 Beta Drive,  Suite 200,  Mayfield Village,  OH 44143-2335
danforth{([at]})nowhere.xy--------------------------------------------
To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xyTo get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.
Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy
Received on Tue Jan 30 2001 - 21:19:45 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:27:44 UTC