You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2014/06/23 05:06:25 UTC
[jira] [Commented] (TAP5-1493) Property expressions on properties
that are covariant on a base class use the type of the base class property,
not the covariant subclass
[ https://issues.apache.org/jira/browse/TAP5-1493?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14040365#comment-14040365 ]
ASF subversion and git services commented on TAP5-1493:
-------------------------------------------------------
Commit 8d1bf477d7e4f378d6599370ec66df66daf73926 in tapestry-5's branch refs/heads/master from [~thiagohp]
[ https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;h=8d1bf47 ]
Adds tests for TAP5-1493.
> Property expressions on properties that are covariant on a base class use the type of the base class property, not the covariant subclass
> -----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: TAP5-1493
> URL: https://issues.apache.org/jira/browse/TAP5-1493
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core, tapestry-ioc
> Affects Versions: 5.2
> Reporter: Howard M. Lewis Ship
> Priority: Critical
> Labels: bulk-close-candidate
>
> public abstract class AbstractFoo
> {
> public abstract AbstractBar getBar();
> }
> public class Foo extends AbstractFoo
> {
> public Bar getBar();
> }
> Here property bar is covariant; the subclass (Foo) changes the type of the return value (from AbstractBar to just Bar). Assuming that Bar is a subclass of AbstractBar, that's fine.
> The bug is that in this circumstance, the PropertyConduitSource sees the type of
> property "bar" of class Foo as AbstractBar, not Bar.
> Interestingly, a little debugging showed that the getter method for property bar was "public AbstractBar Foo.getBar()" ... in other words, much like with Generics, covariant return types may be largely
> a fiction of the compiler inserting the necessary casts in place.
--
This message was sent by Atlassian JIRA
(v6.2#6252)