Re: Array slices and types



On Thu, 21 Aug 2008 07:44:29 -0700 (PDT), Adam Beneschan wrote:

Sorry, Dmitry, but if you'll pardon the expression, you're a little
off-base here. S'Base and S are subtypes of the same *type*.

No need to excuse, you are right, I don't see any semantic difference
between subtypes of "same" type and derived tagged types. Consequently, I
don't think it is worth to further maintain such difference in the
language.

They
may be different subtypes (have different constraints), but they're
the same type. You're asking for an attribute that would give you a
different type.

Yep, for that matter, tag is merely a constraint put on T'Class. Ada 83
model is capable to incorporate OO! We always knew that! (:-))

There may be merit in having such an attribute (I
haven't looked into it closely), but calling it 'Base would be a bad
idea. S'Parent might be better.

Integer'Parent were Universal_Integer, I guess (:-))

Niklas is asking for S'Base to be the unconstrained array subtype of
the (possibly constrained) array subtype S. It would still fit into
the definition of 'Base (3.5(15)). I'm not sure why this wasn't
defined for array subtypes, or for any other type that could have
discriminants; offhand I don't see how this would cause any problems.

I think that the reason was that S'Base was thought as a very low-level
thing, something like the least constrained type of the *same* internal
representation. For unconstrained arrays the representation is likely not
the same, they might have a dope. For other types nobody seemingly cared.
(:-))

IMO, if S'Base need to be extended, then that would require a bit firmer
foundation than the above.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
.



Relevant Pages

  • Re: On pragma Precondition etc.
    ... there is pragma Assert for that. ... it is not a contract. ... Ada constraints are not contracts. ... we would consider constraints in the sense of Ada subtypes. ...
    (comp.lang.ada)
  • Re: Operation can be dispatching in only one type
    ... Why not to allow such constraints for subtypes? ... a precondition can depend on multiple parameters at ... Subtypes should complement them for dynamic run-time checks (recoverable ...
    (comp.lang.ada)
  • Re: Ada vs Eiffel - Ada programmer approach
    ... constraints should apply to subtypes, ... As subtypes have specific properties on value, ... What if invariants of two subtypes are contradictory? ... define another subtype for imposing the set predicate X rem 2 = 1. ...
    (comp.lang.ada)
  • Re: type and subtype
    ... >> Two subtypes of the same type are compatible with one another. ... >> can convert between them using an implicit type conversion (i.e. no ... > matches the constraints of the destination. ... the representation is required to be same. ...
    (comp.lang.ada)