History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: RSRP-28363
Type: Bug Bug
Status: Open Open
Priority: Normal Normal
Assignee: Ilya Ryzhenkov
Reporter: Vladimir Reshetnikov
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
ReSharper

'Override inherited member' generates wrong code

Created: 30 Aug 06 17:29   Updated: 13 Mar 08 22:36
Component/s: Code Insight
Fix Version/s: 4.0
Security Level: Everybody (All jira users)

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown

Build: 259


 Description  « Hide
class Base<T>
{
public virtual void Foo(Base<T> obj) { }
}

class Derived : Base<Derived>
{
internal class Base<P> { }
}

Override method Base<T>.Foo in inheritor class. Wrong code is generated bacause conflicting nested class is disregarded:

class Base<T>
{
public virtual void Foo(Base<T> obj) { }
}

class Derived : Base<Derived>
{
public override void Foo(Base<Derived> obj) /* error CS0115: 'Derived.Foo(Derived.Base<Derived>)': no suitable method found to override */
{ base.Foo(obj); }

internal class Base<T> { }
}

Expected result:

using Base_1 = Base<Derived>;
class Base<T>
{
public virtual void Foo(Base<T> obj) { }
}

class Derived : Base<Derived>
{
public override void Foo(Base_1 obj)
{ base.Foo(obj); } }

internal class Base<T> { }
}



 All   Comments   Work Log   Change History      Sort Order:
Vladimir Reshetnikov - 14 Nov 06 11:06
Fixed in 301