@@ -69,7 +69,7 @@ public InterfaceInvokerClass (InterfaceGen iface, CodeGenerationOptions opt, Cod
6969
7070 Constructors . Add ( new InterfaceInvokerConstructor ( opt , iface , context ) ) ;
7171
72- AddMemberInvokers ( iface , new HashSet < string > ( ) , opt , context ) ;
72+ AddMemberInvokers ( iface , new HashSet < string > ( ) , iface . SkippedInvokerMethods , opt , context ) ;
7373 }
7474
7575 static HashSet < InterfaceGen > GetCompleteImplementedInterfaces ( HashSet < InterfaceGen > ifaces , InterfaceGen toplevel )
@@ -81,15 +81,15 @@ static HashSet<InterfaceGen> GetCompleteImplementedInterfaces (HashSet<Interface
8181 return ifaces ;
8282 }
8383
84- void AddMemberInvokers ( InterfaceGen iface , HashSet < string > members , CodeGenerationOptions opt , CodeGeneratorContext context )
84+ void AddMemberInvokers ( InterfaceGen iface , HashSet < string > members , HashSet < string > skipInvokers , CodeGenerationOptions opt , CodeGeneratorContext context )
8585 {
8686 AddPropertyInvokers ( iface , iface . Properties . Where ( p => ! p . Getter . IsStatic && ! p . Getter . IsInterfaceDefaultMethod ) , members , opt , context ) ;
87- AddMethodInvokers ( iface , iface . Methods . Where ( m => ! m . IsStatic && ! m . IsInterfaceDefaultMethod ) , members , opt , context ) ;
87+ AddMethodInvokers ( iface , iface . Methods . Where ( m => ! m . IsStatic && ! m . IsInterfaceDefaultMethod ) , members , skipInvokers , opt , context ) ;
8888 AddCharSequenceEnumerators ( iface ) ;
8989
9090 foreach ( var i in iface . GetAllDerivedInterfaces ( ) ) {
9191 AddPropertyInvokers ( iface , i . Properties . Where ( p => ! p . Getter . IsStatic && ! p . Getter . IsInterfaceDefaultMethod ) , members , opt , context ) ;
92- AddMethodInvokers ( iface , i . Methods . Where ( m => ! m . IsStatic && ! m . IsInterfaceDefaultMethod && ! iface . IsCovariantMethod ( m ) && ! ( i . FullName . StartsWith ( "Java.Lang.ICharSequence" , StringComparison . Ordinal ) && m . Name . EndsWith ( "Formatted" , StringComparison . Ordinal ) ) ) , members , opt , context ) ;
92+ AddMethodInvokers ( iface , i . Methods . Where ( m => ! m . IsStatic && ! m . IsInterfaceDefaultMethod && ! iface . IsCovariantMethod ( m ) && ! ( i . FullName . StartsWith ( "Java.Lang.ICharSequence" , StringComparison . Ordinal ) && m . Name . EndsWith ( "Formatted" , StringComparison . Ordinal ) ) ) , members , skipInvokers , opt , context ) ;
9393 AddCharSequenceEnumerators ( i ) ;
9494 }
9595 }
@@ -113,10 +113,13 @@ void AddPropertyInvokers (InterfaceGen iface, IEnumerable<Property> properties,
113113 Properties . Add ( new InterfaceInvokerProperty ( iface , prop , opt , context ) ) ;
114114 }
115115 }
116-
117- void AddMethodInvokers ( InterfaceGen iface , IEnumerable < Method > methods , HashSet < string > members , CodeGenerationOptions opt , CodeGeneratorContext context )
116+
117+ void AddMethodInvokers ( InterfaceGen iface , IEnumerable < Method > methods , HashSet < string > members , HashSet < string > skipInvokers , CodeGenerationOptions opt , CodeGeneratorContext context )
118118 {
119119 foreach ( var m in methods ) {
120+ if ( skipInvokers . Contains ( $ "{ m . DeclaringType . RawJniName } .{ m . JavaName } { m . JniSignature } ") )
121+ continue ;
122+
120123 var sig = m . GetSignature ( ) ;
121124
122125 if ( members . Contains ( sig ) )
0 commit comments