CVS difference for ai12s/ai12-0317-1.txt

Differences between 1.3 and version 1.4
Log of other versions for file ai12s/ai12-0317-1.txt

--- ai12s/ai12-0317-1.txt	2019/02/23 00:25:11	1.3
+++ ai12s/ai12-0317-1.txt	2019/02/23 00:29:34	1.4
@@ -1,4 +1,4 @@
-!standard 3.10.2(16.1/5)                                 19-02-23  AI12-0317-1/03
+!standard 3.10.2(16.1/5)                                 19-02-24  AI12-0317-1/04
 !standard 4.3.2(5.1/5)
 !standard 4.3.2(5.2/5)
 !standard 4.3.2(5.3/5)
@@ -111,15 +111,15 @@
 Modify RM 7.5(2.1/5):
 
   In the following contexts, an expression of a limited type is not
-  permitted unless [it is] {each of its constituents (see 4.4) is
-  /newly constructed/, that is,} an aggregate, a function_call, {or} a
-  raise_expression[, a parenthesized expression or qualified_expression
-  whose operand is permitted by this rule, a conditional_expression
-  all of whose dependent_expressions are permitted by this rule, or a
-  declare_expression whose body_expression is permitted by this rule]:
+  permitted unless [it is] {each of its constituents (see 4.4) is either
+  a raise_expression or /newly constructed/, that is,} an aggregate[,]
+  or a function_call[, a raise_expression, a parenthesized expression or
+  qualified_expression whose operand is permitted by this rule, a
+  conditional_expression all of whose dependent_expressions are
+  permitted by this rule, or a declare_expression whose body_expression
+  is permitted by this rule]:
   ...
 
-
 !discussion
 
 Introducing new terms means choosing among all the possible English
@@ -629,17 +629,56 @@
 
 ****************************************************************
 
-From: Steve Baird
-Sent: Friday, February 22, 2019  2:14 PM
+From: Randy Brukardt
+Sent: Friday, February 22, 2019  4:10 PM
 
-****************************************************************
+...
+> > I write a lot of code with -- *** TBD comments, and it seems that 
+> > using a TBD exception instead would be safer. But that doesn't work 
+> > if there are contexts that don't allow raise_expressions just 
+> > because we were lazy.
+> 
+> Hmmm...  I am not sure it is laziness.  I see it as trying to avoid 
+> creating a lot of special cases for raise-expressions, and instead 
+> adopting a uniform model, namely they are equivalent to a call on a 
+> function that raises an exception.
+> Such things are usable almost everywhere.  Do we really need to create 
+> this third case just for renaming of limited objects in declare 
+> expressions?  That really seems like some sort of priority inversion. 
+> ;-)
+
+Some wise person (might have been you) once noted that if there has to be a 
+complexity in either the user model or in the RM wording, we should put the 
+complexity in the RM everytime. We shouldn't be afraid of extra RM wording 
+if it will make the user experience better. Because we want the user model 
+to be as seamless as possible. (This is also related to your "bump under the 
+carpet" analogy.)
+
+If the example I showed is plausible (and I think it is), someone will 
+eventually trip over it. Is simplifying the RM wording worth leaving a "bump" 
+in the user model??
 
-From: Steve Baird
-Sent: Friday, February 22, 2019  2:14 PM
+   (declare
+        Foo renames Lim_Type'(if B then Obj else raise TBD_Error);
+     begin
+        ...
+
+I doubt whomever trips over this is going to be interested in your argument 
+that raise TBD_Error is equivalent to a function that raises TBD_Error. :-) 
+We clearly want as little illegal here as possible (subject to the goal of 
+preventing temporary objects containing tasks being declared here).
 
 ****************************************************************
 
-From: Steve Baird
-Sent: Friday, February 22, 2019  2:14 PM
+From: Tucker Taft
+Sent: Friday, February 22, 2019  4:24 PM
+
+> ...
+> We clearly want as little illegal here as possible (subject to the 
+> goal of preventing temporary objects containing tasks being declared here).
+
+OK, enough said.  Hence, here is yet another version.
+
+[This is version /04 of the AI - Editor.]
 
 ****************************************************************

Questions? Ask the ACAA Technical Agent