@@ -197,7 +197,7 @@ private static bool DeclarationInReferencedProjectCanBeShadowed(Declaration orig
197197 return false ;
198198 }
199199
200- if ( userDeclaration . DeclarationType . HasFlag ( DeclarationType . ClassModule ) )
200+ if ( userDeclaration . DeclarationType == DeclarationType . ClassModule || userDeclaration . DeclarationType == DeclarationType . Document )
201201 {
202202 switch ( userDeclarationEnclosingType )
203203 {
@@ -208,7 +208,8 @@ private static bool DeclarationInReferencedProjectCanBeShadowed(Declaration orig
208208 }
209209 }
210210
211- if ( ! userDeclaration . DeclarationType . HasFlag ( DeclarationType . ClassModule ) )
211+ if ( ( userDeclaration . DeclarationType != DeclarationType . ClassModule && userDeclaration . DeclarationType != DeclarationType . Document ) ||
212+ ( userDeclarationEnclosingType != ComponentType . UserForm && userDeclarationEnclosingType != ComponentType . Document ) )
212213 {
213214 if ( ! ReferencedProjectTypeShadowingRelations [ originalDeclaration . DeclarationType ] . Contains ( userDeclaration . DeclarationType ) )
214215 {
@@ -255,7 +256,6 @@ private static bool DeclarationInAnotherComponentCanBeShadowed(Declaration origi
255256 // It is not possible to directly access any declarations placed inside a Class Module.
256257 if ( originalDeclaration . DeclarationType != DeclarationType . ClassModule &&
257258 originalDeclaration . DeclarationType != DeclarationType . Document &&
258- originalDeclaration . DeclarationType != DeclarationType . UserForm &&
259259 originalDeclarationEnclosingType == ComponentType . ClassModule )
260260 {
261261 return false ;
@@ -264,7 +264,6 @@ private static bool DeclarationInAnotherComponentCanBeShadowed(Declaration origi
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 &&
266266 originalDeclaration . DeclarationType != DeclarationType . Document &&
267- originalDeclaration . DeclarationType != DeclarationType . UserForm &&
268267 originalDeclarationEnclosingType == ComponentType . Document )
269268 {
270269 return false ;
@@ -273,7 +272,6 @@ private static bool DeclarationInAnotherComponentCanBeShadowed(Declaration origi
273272 // It is not possible to directly access any declarations placed inside a User Form.
274273 if ( originalDeclaration . DeclarationType != DeclarationType . ClassModule &&
275274 originalDeclaration . DeclarationType != DeclarationType . Document &&
276- originalDeclaration . DeclarationType != DeclarationType . UserForm &&
277275 originalDeclarationEnclosingType == ComponentType . UserForm )
278276 {
279277 return false ;
@@ -314,14 +312,12 @@ private static bool DeclarationInAnotherComponentCanBeShadowed(Declaration origi
314312 private static bool DeclarationInTheSameComponentCanBeShadowed ( Declaration originalDeclaration , Declaration userDeclaration )
315313 {
316314 // Shadowing the component containing the declaration is not a problem, because it is possible to directly access declarations inside that component
317- if ( originalDeclaration . DeclarationType == DeclarationType . ProceduralModule ||
315+ if ( originalDeclaration . DeclarationType == DeclarationType . ProceduralModule ||
318316 originalDeclaration . DeclarationType == DeclarationType . ClassModule ||
319317 originalDeclaration . DeclarationType == DeclarationType . Document ||
320- originalDeclaration . DeclarationType == DeclarationType . UserForm ||
321- userDeclaration . DeclarationType == DeclarationType . ProceduralModule ||
318+ userDeclaration . DeclarationType == DeclarationType . ProceduralModule ||
322319 userDeclaration . DeclarationType == DeclarationType . ClassModule ||
323- userDeclaration . DeclarationType == DeclarationType . Document ||
324- userDeclaration . DeclarationType == DeclarationType . UserForm )
320+ userDeclaration . DeclarationType == DeclarationType . Document )
325321 {
326322 return false ;
327323 }
0 commit comments