diff options
author | Lauro Moura <lauromoura@gmail.com> | 2019-02-11 16:53:29 -0200 |
---|---|---|
committer | Vitor Sousa <vitorsousa@expertisesolutions.com.br> | 2019-02-11 16:59:10 -0200 |
commit | 9277586fd8244826bdfbbc7625c3a08be71f5e06 (patch) | |
tree | 3252833738a1009969bcc280011f6f51485b2be8 | |
parent | 133b659b7301c2bf577491575a5e7f455b345347 (diff) | |
download | efl-9277586fd8244826bdfbbc7625c3a08be71f5e06.tar.gz |
efl-csharp: Fix self in iface concrete functions
Summary:
It was mistakenly being called as static functions.
Fixes T7619
Test Plan: See attached testcase.
Reviewers: segfaultxavi, bu5hm4n, vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7619
Differential Revision: https://phab.enlightenment.org/D7904
-rw-r--r-- | src/bin/eolian_mono/eolian/mono/function_definition.hh | 2 | ||||
-rw-r--r-- | src/tests/efl_mono/Eo.cs | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh index 5a78bc735f..f89ac954cb 100644 --- a/src/bin/eolian_mono/eolian/mono/function_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh @@ -169,7 +169,7 @@ struct function_definition_generator // inherited is set in the constructor, true if this instance is from a pure C# class (not generated). if (do_super && !f.is_static) self = "(inherited ? Efl.Eo.Globals.efl_super(" + self + ", this.NativeClass) : " + self + ")"; - else + else if (f.is_static) self = name_helpers::klass_get_full_name(f.klass) + "()"; if(!as_generator diff --git a/src/tests/efl_mono/Eo.cs b/src/tests/efl_mono/Eo.cs index 37d4735b90..ed1d65a779 100644 --- a/src/tests/efl_mono/Eo.cs +++ b/src/tests/efl_mono/Eo.cs @@ -369,4 +369,17 @@ class TestConstructors } } +class TestInterfaceConcrete +{ + // For T7619 + public static void test_iface_concrete_methods() + { + var obj = new Dummy.TestObject(); + Dummy.TestIface iface = Dummy.TestIfaceConcrete.static_cast(obj); + + iface.IfaceProp = 1970; + Test.AssertEquals(iface.IfaceProp, 1970); + } +} + } |