'This' type

Marek Kozieł develop4lasu at gmail.com
Tue Mar 3 13:42:47 PST 2009

W dniu 3 marca 2009 22:26 użytkownik Neal Gafter <neal at gafter.com> napisał:

> On Tue, Mar 3, 2009 at 1:18 PM, Marek Kozieł <develop4lasu at gmail.com>
> wrote:
> > Oh.
> >
> > I get it now.
> >
> > Yes A is a subtype of Collection<A>
> >
> > but after
> >
> > B extends A
> >
> > B will be Collection<B> from B point of view
> >
> > B will be Collection<A> from A point of view
> >
> > In base relation is same as one created by overloaded methods.
> So if we have a class C that is a sibling of B (a child of A), then
> from A's point of view we can place a C into the collection (because C
> is a subtype of A).  But then from B's point of view the collection
> should contain only Bs and not any Cs.  So when B pulls something out
> of the collection we could get a ClassCastException.
> That's the kind of thing you need to demonstrate can't happen in order
> to show this change is a sound extension of the type system.

That's the reason why I wander if 'This' should be allowed as input
parameter type(what conditions should be respected ...).

In basic it's designed for return types and return type parameters.

But notice that B b ; A a=b; would be invalid while this comes from generic
rules(extends would be partial).

Pozdrowionka. / Regards.
Lasu aka Marek Kozieł


More information about the coin-dev mailing list