Using declarations, directors and overloaded methods
Language::unrollVirtualMethods was assuming that the using declaration would only introduce one method. Fix this by adding in all the overloaded methods from a base class. Affects code generation in C# and Java, but I was not able to construct a test that failed before this commit.
This commit is contained in:
parent
8a8532d823
commit
50518d4e77
4 changed files with 167 additions and 12 deletions
|
|
@ -0,0 +1,70 @@
|
|||
using System;
|
||||
|
||||
namespace director_using_member_scopesNamespace {
|
||||
|
||||
public class runme
|
||||
{
|
||||
static void Main()
|
||||
{
|
||||
runme r = new runme();
|
||||
r.run();
|
||||
}
|
||||
|
||||
void run()
|
||||
{
|
||||
NativeWindowType nwt = new NativeWindowType();
|
||||
{
|
||||
MyApplicationContextSDL a = new MyApplicationContextSDL();
|
||||
|
||||
if (ApplicationContextBase.call_setWindowGrab(a, nwt, true) != 100)
|
||||
throw new Exception("failed");
|
||||
|
||||
if (ApplicationContextSDL.call_setWindowGrab(a, nwt, true) != 100)
|
||||
throw new Exception("failed");
|
||||
}
|
||||
|
||||
{
|
||||
MyACSDL a = new MyACSDL();
|
||||
|
||||
if (ACB.call_setWindowGrab(a, nwt, true) != 100)
|
||||
throw new Exception("failed");
|
||||
if (ACB.call_setWindowGrab(a, "hi", 0) != 200)
|
||||
throw new Exception("failed");
|
||||
|
||||
if (ACSDL.call_setWindowGrab(a, nwt, true) != 100)
|
||||
throw new Exception("failed");
|
||||
if (ACSDL.call_setWindowGrab(a, "hi", 0) != 200)
|
||||
throw new Exception("failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MyApplicationContextSDL: ApplicationContextSDL
|
||||
{
|
||||
public MyApplicationContextSDL() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public override int setWindowGrab(NativeWindowType win, bool grab)
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
|
||||
class MyACSDL: ACSDL
|
||||
{
|
||||
public MyACSDL() : base()
|
||||
{
|
||||
}
|
||||
|
||||
public override int setWindowGrab(NativeWindowType win, bool grab)
|
||||
{
|
||||
return 100;
|
||||
}
|
||||
public override int setWindowGrab(string s, int val)
|
||||
{
|
||||
return 200;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue