ICSharpCode.NRefactory.CSharp.Resolver.FindReferences.GetSearchScopeForMethod C# (CSharp) Méthode

GetSearchScopeForMethod() private méthode

private GetSearchScopeForMethod ( IMethod method ) : SearchScope
method IMethod
Résultat SearchScope
		SearchScope GetSearchScopeForMethod(IMethod method)
		{
			Type specialNodeType;
			switch (method.Name) {
				case "Add":
					specialNodeType = typeof(ArrayInitializerExpression);
					break;
				case "Where":
					specialNodeType = typeof(QueryWhereClause);
					break;
				case "Select":
					specialNodeType = typeof(QuerySelectClause);
					break;
				case "SelectMany":
					specialNodeType = typeof(QueryFromClause);
					break;
				case "Join":
				case "GroupJoin":
					specialNodeType = typeof(QueryJoinClause);
					break;
				case "OrderBy":
				case "OrderByDescending":
				case "ThenBy":
				case "ThenByDescending":
					specialNodeType = typeof(QueryOrdering);
					break;
				case "GroupBy":
					specialNodeType = typeof(QueryGroupClause);
					break;
				case "Invoke":
					if (method.DeclaringTypeDefinition != null && method.DeclaringTypeDefinition.Kind == TypeKind.Delegate)
						specialNodeType = typeof(InvocationExpression);
					else
						specialNodeType = null;
					break;
				case "GetEnumerator":
				case "MoveNext":
					specialNodeType = typeof(ForeachStatement);
					break;
				case "GetAwaiter":
				case "GetResult":
				case "OnCompleted":
				case "UnsafeOnCompleted":
					specialNodeType = typeof(UnaryOperatorExpression);
					break;
				default:
					specialNodeType = null;
					break;
			}
			// Use searchTerm only if specialNodeType==null
			string searchTerm = (specialNodeType == null) ? method.Name : null;
			return new SearchScope(
				searchTerm,
				delegate (ICompilation compilation) {
					IMethod imported = compilation.Import(method);
					if (imported != null)
						return new FindMethodReferences(imported, specialNodeType);
					else
						return null;
				});
		}