@@ -169,25 +169,16 @@ private static void ProcessProperties(Class @class, HashSet<Property> newPropert
169169 @class . Properties . Remove ( property ) ;
170170 continue ;
171171 }
172-
173- foreach ( var method in @class . Methods . Where (
174- m => m . IsGenerated && m . Name == property . Name ) )
175- {
176- var oldName = method . Name ;
177- method . Name = $@ "get{ char . ToUpperInvariant ( method . Name [ 0 ] ) } {
178- method . Name . Substring ( 1 ) } " ;
179- Diagnostics . Debug ( "Method {0}::{1} renamed to {2}" ,
180- method . Namespace . Name , oldName , method . Name ) ;
181- }
182- foreach ( var @event in @class . Events . Where (
183- e => e . Name == property . Name ) )
172+ if ( property . SetMethod == null &&
173+ @class . GetOverloads ( property . GetMethod ) . Any (
174+ m => m != property . GetMethod && ! m . Ignore ) )
184175 {
185- var oldName = @event . Name ;
186- @event . Name = $@ "on{ char . ToUpperInvariant ( @event . Name [ 0 ] ) } {
187- @event . Name . Substring ( 1 ) } " ;
188- Diagnostics . Debug ( "Event {0}::{1} renamed to {2}" ,
189- @event . Namespace . Name , oldName , @event . Name ) ;
176+ property . GetMethod . GenerationKind = GenerationKind . Generate ;
177+ @class . Properties . Remove ( property ) ;
178+ continue ;
190179 }
180+
181+ RenameConflictingMethods ( @class , property ) ;
191182 CombineComments ( property ) ;
192183 }
193184 }
@@ -211,6 +202,28 @@ private static Property GetBaseProperty(Class @class, Property @override)
211202 return null ;
212203 }
213204
205+ private static void RenameConflictingMethods ( Class @class , Property property )
206+ {
207+ foreach ( var method in @class . Methods . Where (
208+ m => m . IsGenerated && m . Name == property . Name ) )
209+ {
210+ var oldName = method . Name ;
211+ method . Name = $@ "get{ char . ToUpperInvariant ( method . Name [ 0 ] ) } {
212+ method . Name . Substring ( 1 ) } " ;
213+ Diagnostics . Debug ( "Method {0}::{1} renamed to {2}" ,
214+ method . Namespace . Name , oldName , method . Name ) ;
215+ }
216+ foreach ( var @event in @class . Events . Where (
217+ e => e . Name == property . Name ) )
218+ {
219+ var oldName = @event . Name ;
220+ @event . Name = $@ "on{ char . ToUpperInvariant ( @event . Name [ 0 ] ) } {
221+ @event . Name . Substring ( 1 ) } " ;
222+ Diagnostics . Debug ( "Event {0}::{1} renamed to {2}" ,
223+ @event . Namespace . Name , oldName , @event . Name ) ;
224+ }
225+ }
226+
214227 private static string GetReadWritePropertyName ( INamedDecl getter , string afterSet )
215228 {
216229 string name = GetPropertyName ( getter . Name ) ;
0 commit comments