CVS difference for ai05s/ai05-0017-1.txt

Differences between 1.6 and version 1.7
Log of other versions for file ai05s/ai05-0017-1.txt

--- ai05s/ai05-0017-1.txt	2008/11/26 23:58:33	1.6
+++ ai05s/ai05-0017-1.txt	2008/12/30 03:10:08	1.7
@@ -23,21 +23,21 @@
 
 Consider the following:
 
-	procedure Foo is
-	   package P1 is
-	   private
-	      type T1;
-	   end P1;
-	   package P2 is
-	   private
-	      type T2;
-	   end P2;
-
-	   package body P1 is separate;
-	   package body P2 is separate;
-	begin
-	   ...
-	end Foo;
+   procedure Foo is
+      package P1 is
+      private
+         type T1;
+      end P1;
+      package P2 is
+      private
+         type T2;
+      end P2;
+
+      package body P1 is separate;
+      package body P2 is separate;
+   begin
+      ...
+   end Foo;
 
 The rule here seems to say that the stub for P1 freezes both T1 and T2.
 T1 surely cannot be meant to be frozen here (else an incomplete type deferred
@@ -66,13 +66,13 @@
 We do need to have freezing of incomplete types, because that helps to prevent
 premature uses in calls. Consider the following:
 
-	package Stt is 
-	    type T is tagged; 
-	    function F return access T'Class; 
-	    function G (X : access T) return Integer; 
-	    I : Integer := G (F); 
-	    type T is tagged null record; 
-	end Stt;
+   package Stt is 
+      type T is tagged; 
+         function F return access T'Class; 
+         function G (X : access T) return Integer; 
+         I : Integer := G (F); 
+         type T is tagged null record; 
+   end Stt;
 
 The call to G is dispatching, so we better know the location of the tag
 for type T. The profile of G is frozen, which freezes the anonymous access

Questions? Ask the ACAA Technical Agent