@@ -14,12 +14,14 @@ internal class DependencySearch
1414 {
1515 private readonly bool explainYourself ;
1616 private readonly IDependencyFilter dependencyFilter ;
17+ private readonly bool serachForDependencyInFieldConstant ;
1718
1819
19- public DependencySearch ( bool explainYourself , IDependencyFilter dependencyFilter = null )
20+ public DependencySearch ( bool explainYourself , bool serachForDependencyInFieldConstant = false , IDependencyFilter dependencyFilter = null )
2021 {
2122 this . explainYourself = explainYourself ;
2223 this . dependencyFilter = dependencyFilter ;
24+ this . serachForDependencyInFieldConstant = serachForDependencyInFieldConstant ;
2325 }
2426
2527
@@ -28,42 +30,42 @@ public DependencySearch(bool explainYourself, IDependencyFilter dependencyFilter
2830 /// </summary>
2931 public IEnumerable < TypeSpec > FindTypesThatHaveDependencyOnAny ( IEnumerable < TypeSpec > input , IEnumerable < string > dependencies )
3032 {
31- return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . HaveDependencyOnAny , dependencies , true ) ;
33+ return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . HaveDependencyOnAny , dependencies ) ;
3234 }
3335
3436 /// <summary>
3537 /// Finds types that have a dependency on every item in the given list of dependencies.
3638 /// </summary>
3739 public IEnumerable < TypeSpec > FindTypesThatHaveDependencyOnAll ( IEnumerable < TypeSpec > input , IEnumerable < string > dependencies )
3840 {
39- return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . HaveDependencyOnAll , dependencies , true ) ;
41+ return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . HaveDependencyOnAll , dependencies ) ;
4042 }
4143
4244 /// <summary>
4345 /// Finds types that may have a dependency on any item in the given list of dependencies, but cannot have a dependency that is not in the list.
4446 /// </summary>
4547 public IEnumerable < TypeSpec > FindTypesThatOnlyHaveDependencyOnAnyOrNone ( IEnumerable < TypeSpec > input , IEnumerable < string > dependencies )
4648 {
47- return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . OnlyHaveDependenciesOnAnyOrNone , dependencies , false ) ;
49+ return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . OnlyHaveDependenciesOnAnyOrNone , dependencies ) ;
4850 }
4951
5052 /// <summary>
5153 /// Finds types that have a dependency on any item in the given list of dependencies, but cannot have a dependency that is not in the list.
5254 /// </summary>
5355 public IEnumerable < TypeSpec > FindTypesThatOnlyHaveDependencyOnAny ( IEnumerable < TypeSpec > input , IEnumerable < string > dependencies )
5456 {
55- return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . OnlyHaveDependenciesOnAny , dependencies , false ) ;
57+ return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . OnlyHaveDependenciesOnAny , dependencies ) ;
5658 }
5759
5860 /// <summary>
5961 /// Finds types that have a dependency on every item in the given list of dependencies, but cannot have a dependency that is not in the list.
6062 /// </summary>
6163 public IEnumerable < TypeSpec > FindTypesThatOnlyOnlyHaveDependencyOnAll ( IEnumerable < TypeSpec > input , IEnumerable < string > dependencies )
6264 {
63- return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . OnlyHaveDependenciesOnAll , dependencies , false ) ;
65+ return FindTypes ( input , HaveDependency_CheckingStrategy . TypeOfCheck . OnlyHaveDependenciesOnAll , dependencies ) ;
6466 }
6567
66- private IEnumerable < TypeSpec > FindTypes ( IEnumerable < TypeSpec > input , HaveDependency_CheckingStrategy . TypeOfCheck typeOfCheck , IEnumerable < string > dependencies , bool serachForDependencyInFieldConstant )
68+ private IEnumerable < TypeSpec > FindTypes ( IEnumerable < TypeSpec > input , HaveDependency_CheckingStrategy . TypeOfCheck typeOfCheck , IEnumerable < string > dependencies )
6769 {
6870 var searchTree = new CachedNamespaceTree ( dependencies ) ;
6971 var context = new TypeCheckingContext ( serachForDependencyInFieldConstant , explainYourself , dependencyFilter ) ;
@@ -82,7 +84,7 @@ private IEnumerable<TypeSpec> FindTypes(IEnumerable<TypeSpec> input, HaveDepende
8284 public IEnumerable < TypeSpec > FindTypesThatAreUsedByAny ( IEnumerable < TypeSpec > input , IEnumerable < string > users , IEnumerable < TypeSpec > allTypes )
8385 {
8486 var filterTree = new CachedNamespaceTree ( users ) ;
85- var context = new TypeCheckingContext ( false , explainYourself , dependencyFilter ) ;
87+ var context = new TypeCheckingContext ( serachForDependencyInFieldConstant , explainYourself , dependencyFilter ) ;
8688 var strategy = new AreUsedBy_CheckingStrategy ( ) ;
8789
8890
0 commit comments