eolian_mono: fix to call mixin's method in inherited class
authorJaehyun Cho <jae_hyun.cho@samsung.com>
Mon, 24 Jun 2019 09:43:07 +0000 (18:43 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Wed, 26 Jun 2019 01:43:40 +0000 (10:43 +0900)
commitb7b32abe9099f4ba45399c2a5b92ce421f2cb4e4
treeb2c3dd1818fcb9dccd2cea961d1bd50f6643a00f
parent2a5ba14ffeb50ee1bcc5e475aed2b59dbc427652
eolian_mono: fix to call mixin's method in inherited class

Summary:
Eo mixin is converted to C# interface and C# concrete class.
When the mixin's method is called, the delegate function of Eo mixin's
C# concrete class is called.

Now, the delegate function of Eo mixin's C# concrete class calls C#
method with casting to Eo mixin's C# concrete class type.
e.g. ((IClickableConcrete)ws.Target).Press(button);

If a user defined C# class implements Eo mixin's C# interface, the
implemented method cannot be called because the user defined C# class
type is not the same as Eo mixin's C# concrete class.

To resolve the above issue, the type casting code is fixed.

Reviewers: felipealmeida, lauromoura, vitor.sousa, YOhoho

Reviewed By: YOhoho

Subscribers: bu5hm4n, YOhoho, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9111
src/bin/eolian_mono/eolian/mono/function_definition.hh