Heuristic to find types moved from one namespace or assembly to another
Runs only in diff mode (baseline defined). Lists types moved between namespaces or assemblies, via a join LINQ query on type name (without namespace prefix) over the types added and removed sets.
CQLinq source
This code query is written in CQLinq, C# LINQ over the NDepend code model. It ships with every new NDepend project: you can read it, adapt it, or use it as a starting point for your own custom rules.
// <Name>Heuristic to find types moved from one namespace or assembly to another</Name>
let typesRemoved = codeBase.OlderVersion().Application.Types.Where(t => t.WasRemoved())
let typesAdded = Application.Types.Where(t => t.WasAdded())
from tMoved in typesAdded.Join(
typesRemoved,
t => t.Name,
t => t.Name,
(tNewer, tOlder) => new { tNewer,
OlderParentNamespace = tOlder.ParentNamespace,
OlderParentAssembly = tOlder.ParentAssembly } )
select tMoved
//<Desc>
// Runs only in *diff mode* (baseline defined). Lists *types* moved between
// namespaces or assemblies, via a **join LINQ query** on type name (without
// namespace prefix) over the types *added* and *removed* sets.
//</Desc>
Open in the interactive Rules Explorer · All default rules
Code Diff Summary: all 25 items
- New assemblies
- Assemblies removed
- Assemblies where code was changed
- New namespaces
- Namespaces removed
- Namespaces where code was changed
- New types
- Types removed
- Types where code was changed
- Heuristic to find types moved from one namespace or assembly to another
- Types directly using one or several types changed
- Types indirectly using one or several types changed
- New methods
- Methods removed
- Methods where code was changed
- Methods directly calling one or several methods changed
- Methods indirectly calling one or several methods changed
- New fields
- Fields removed
- Third party types that were not used and that are now used
- Third party types that were used and that are not used anymore
- Third party methods that were not used and that are now used
- Third party methods that were used and that are not used anymore
- Third party fields that were not used and that are now used
- Third party fields that were used and that are not used anymore