@@ -197,7 +197,7 @@ private static bool DeclarationInReferencedProjectCanBeShadowed(Declaration orig
197197 return false ;
198198 }
199199
200- if ( userDeclaration . DeclarationType == DeclarationType . ClassModule || userDeclaration . DeclarationType == DeclarationType . Document )
200+ if ( userDeclaration . DeclarationType . HasFlag ( DeclarationType . ClassModule ) )
201201 {
202202 switch ( userDeclarationEnclosingType )
203203 {
@@ -208,8 +208,7 @@ private static bool DeclarationInReferencedProjectCanBeShadowed(Declaration orig
208208 }
209209 }
210210
211- if ( ( userDeclaration . DeclarationType != DeclarationType . ClassModule && userDeclaration . DeclarationType != DeclarationType . Document ) ||
212- ( userDeclarationEnclosingType != ComponentType . UserForm && userDeclarationEnclosingType != ComponentType . Document ) )
211+ if ( ! userDeclaration . DeclarationType . HasFlag ( DeclarationType . ClassModule ) )
213212 {
214213 if ( ! ReferencedProjectTypeShadowingRelations [ originalDeclaration . DeclarationType ] . Contains ( userDeclaration . DeclarationType ) )
215214 {
@@ -256,22 +255,25 @@ private static bool DeclarationInAnotherComponentCanBeShadowed(Declaration origi
256255 // It is not possible to directly access any declarations placed inside a Class Module.
257256 if ( originalDeclaration . DeclarationType != DeclarationType . ClassModule &&
258257 originalDeclaration . DeclarationType != DeclarationType . Document &&
258+ originalDeclaration . DeclarationType != DeclarationType . UserForm &&
259259 originalDeclarationEnclosingType == ComponentType . ClassModule )
260260 {
261261 return false ;
262262 }
263263
264264 // It is not possible to directly access any declarations placed inside a Document Module. (Document Modules have DeclarationType ClassMoodule.)
265265 if ( originalDeclaration . DeclarationType != DeclarationType . ClassModule &&
266- originalDeclaration . DeclarationType != DeclarationType . Document &&
266+ originalDeclaration . DeclarationType != DeclarationType . Document &&
267+ originalDeclaration . DeclarationType != DeclarationType . UserForm &&
267268 originalDeclarationEnclosingType == ComponentType . Document )
268269 {
269270 return false ;
270271 }
271272
272- // It is not possible to directly access any declarations placed inside a User Form. (User Forms have DeclarationType ClassMoodule.)
273+ // It is not possible to directly access any declarations placed inside a User Form.
273274 if ( originalDeclaration . DeclarationType != DeclarationType . ClassModule &&
274- originalDeclaration . DeclarationType != DeclarationType . Document &&
275+ originalDeclaration . DeclarationType != DeclarationType . Document &&
276+ originalDeclaration . DeclarationType != DeclarationType . UserForm &&
275277 originalDeclarationEnclosingType == ComponentType . UserForm )
276278 {
277279 return false ;
@@ -315,9 +317,11 @@ private static bool DeclarationInTheSameComponentCanBeShadowed(Declaration origi
315317 if ( originalDeclaration . DeclarationType == DeclarationType . ProceduralModule ||
316318 originalDeclaration . DeclarationType == DeclarationType . ClassModule ||
317319 originalDeclaration . DeclarationType == DeclarationType . Document ||
320+ originalDeclaration . DeclarationType == DeclarationType . UserForm ||
318321 userDeclaration . DeclarationType == DeclarationType . ProceduralModule ||
319322 userDeclaration . DeclarationType == DeclarationType . ClassModule ||
320- userDeclaration . DeclarationType == DeclarationType . Document )
323+ userDeclaration . DeclarationType == DeclarationType . Document ||
324+ userDeclaration . DeclarationType == DeclarationType . UserForm )
321325 {
322326 return false ;
323327 }
0 commit comments