@@ -54,10 +54,10 @@ bool IApplyPreserveAttribute.PreserveType (TypeDefinition type, bool allMembers)
5454 return AddDynamicDependencyAttribute ( type , allMembers ) ;
5555 }
5656
57- MethodDefinition GetOrCreateModuleConstructor ( ModuleDefinition @module )
57+ MethodDefinition GetOrCreateModuleConstructor ( ModuleDefinition @module , out bool modified )
5858 {
5959 var moduleType = @module . GetModuleType ( ) ;
60- return abr . GetOrCreateStaticConstructor ( moduleType , out var modified ) ;
60+ return abr . GetOrCreateStaticConstructor ( moduleType , out modified ) ;
6161 }
6262
6363 bool IApplyPreserveAttribute . PreserveConditional ( TypeDefinition onType , MethodDefinition forMethod )
@@ -78,7 +78,7 @@ bool IApplyPreserveAttribute.PreserveConditional (TypeDefinition onType, MethodD
7878
7979 bool AddDynamicDependencyAttribute ( TypeDefinition type , bool allMembers )
8080 {
81- var moduleConstructor = GetOrCreateModuleConstructor ( type . GetModule ( ) ) ;
81+ var moduleConstructor = GetOrCreateModuleConstructor ( type . GetModule ( ) , out var modified ) ;
8282 var members = allMembers
8383 ? allMemberTypes
8484 : DynamicallyAccessedMemberTypes . PublicConstructors | DynamicallyAccessedMemberTypes . NonPublicConstructors ;
@@ -89,7 +89,8 @@ bool AddDynamicDependencyAttribute (TypeDefinition type, bool allMembers)
8989 }
9090
9191 var attrib = abr . CreateDynamicDependencyAttribute ( members , type ) ;
92- return abr . AddAttributeOnlyOnce ( moduleConstructor , attrib ) ;
92+ modified |= abr . AddAttributeOnlyOnce ( moduleConstructor , attrib ) ;
93+ return modified ;
9394 }
9495
9596 bool AddConditionalDynamicDependencyAttribute ( TypeDefinition onType , MethodDefinition forMethod )
@@ -103,10 +104,11 @@ bool AddDynamicDependencyAttribute (IMetadataTokenProvider provider)
103104 if ( member is null )
104105 throw ErrorHelper . CreateError ( 99 , $ "Unable to add dynamic dependency attribute to { provider . GetType ( ) . FullName } ") ;
105106
106- var moduleConstructor = GetOrCreateModuleConstructor ( member . GetModule ( ) ) ;
107+ var moduleConstructor = GetOrCreateModuleConstructor ( member . GetModule ( ) , out var modified ) ;
107108 var signature = DocumentationComments . GetSignature ( member ) ;
108109 var attrib = abr . CreateDynamicDependencyAttribute ( signature , member . DeclaringType ) ;
109- return abr . AddAttributeOnlyOnce ( moduleConstructor , attrib ) ;
110+ modified |= abr . AddAttributeOnlyOnce ( moduleConstructor , attrib ) ;
111+ return modified ;
110112 }
111113 }
112114}
0 commit comments