From 51ae430649fce373e34be115b5228a020bf8a3c7 Mon Sep 17 00:00:00 2001 From: Jonathan Pobst Date: Wed, 4 Nov 2020 13:09:38 -0600 Subject: [PATCH] [jcw-gen] Do not register static methods on an interface. --- .../JavaCallableWrapperGenerator.cs | 3 ++- .../JavaCallableWrapperGeneratorTests.cs | 9 +++++++++ .../SupportDeclarations.cs | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs index 4641c574c..c2207e3b1 100644 --- a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs +++ b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs @@ -153,7 +153,8 @@ void AddNestedTypes (TypeDefinition type) return d; }) .Where (d => GetRegisterAttributes (d).Any ()) - .SelectMany (d => d.Methods)) { + .SelectMany (d => d.Methods) + .Where (m => !m.IsStatic)) { AddMethod (imethod, imethod); } diff --git a/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs b/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs index 186409b42..fe6b4081b 100644 --- a/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs +++ b/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs @@ -189,6 +189,7 @@ extends java.lang.Object __md_methods = ""n_GetInstance:()Lcrc64197ae30a36756915/ExportsMembers;:__export__\n"" + ""n_GetValue:()Ljava/lang/String;:__export__\n"" + + ""n_staticMethodNotMangled:()V:__export__\n"" + ""n_methodNamesNotMangled:()V:__export__\n"" + ""n_CompletelyDifferentName:(Ljava/lang/String;I)Ljava/lang/String;:__export__\n"" + ""n_methodThatThrows:()V:__export__\n"" + @@ -218,6 +219,14 @@ public java.lang.String GetValue () private native java.lang.String n_GetValue (); + public static void staticMethodNotMangled () + { + n_staticMethodNotMangled (); + } + + private static native void n_staticMethodNotMangled (); + + public void methodNamesNotMangled () { n_methodNamesNotMangled (); diff --git a/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/SupportDeclarations.cs b/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/SupportDeclarations.cs index 4d8c228be..de99b77ec 100644 --- a/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/SupportDeclarations.cs +++ b/tests/Java.Interop.Tools.JavaCallableWrappers-Tests/Java.Interop.Tools.JavaCallableWrappers/SupportDeclarations.cs @@ -274,6 +274,11 @@ public string GetValue () return "value"; } + [Export] + public static void staticMethodNotMangled () + { + } + [Export] public void methodNamesNotMangled () {