diff --git a/Design/Rule0004LookupPageIdAndDrillDownPageId.cs b/Design/Rule0004LookupPageIdAndDrillDownPageId.cs index 623382fa..f7d7fbf4 100644 --- a/Design/Rule0004LookupPageIdAndDrillDownPageId.cs +++ b/Design/Rule0004LookupPageIdAndDrillDownPageId.cs @@ -10,14 +10,15 @@ public class Rule0004LookupPageIdAndDrillDownPageId : DiagnosticAnalyzer public override ImmutableArray SupportedDiagnostics { get; } = ImmutableArray.Create(DiagnosticDescriptors.Rule0004LookupPageIdAndDrillDownPageId); public override void Initialize(AnalysisContext context) - => context.RegisterSymbolAction(new Action(this.CheckForLookupPageIdAndDrilldownPageId), SymbolKind.Page); + => context.RegisterSymbolAction(new Action(this.CheckForLookupPageIdAndDrillDownPageId), SymbolKind.Page); - private void CheckForLookupPageIdAndDrilldownPageId(SymbolAnalysisContext context) + private void CheckForLookupPageIdAndDrillDownPageId(SymbolAnalysisContext context) { if (context.Symbol.IsObsoletePending || context.Symbol.IsObsoleteRemoved) return; IPageTypeSymbol pageTypeSymbol = (IPageTypeSymbol)context.Symbol; - if (pageTypeSymbol.PageType == PageTypeKind.List && pageTypeSymbol.RelatedTable != null) - CheckTable(pageTypeSymbol.RelatedTable, ref context); + if (pageTypeSymbol.PageType != PageTypeKind.List || pageTypeSymbol.RelatedTable == null) return; + if (pageTypeSymbol.RelatedTable.ContainingModule != context.Symbol.ContainingModule) return; + CheckTable(pageTypeSymbol.RelatedTable, ref context); } private void CheckTable(ITableTypeSymbol table, ref SymbolAnalysisContext context)