public void MarkTypeAsUsed(ITypeDeclaration declaration) { SetConstructorsState(declaration.DeclaredElement, UsageState.USED_MASK | UsageState.CANNOT_BE_PRIVATE | UsageState.CANNOT_BE_INTERNAL | UsageState.CANNOT_BE_PROTECTED); collectUsagesStageProcess.SetElementState(declaration.DeclaredElement, UsageState.ACCESSED); }
private void SetConstructorsState(ITypeElement typeElement, UsageState state) { foreach (IConstructor constructor in typeElement.Constructors) { collectUsagesStageProcess.SetElementState(constructor, state); } }
private void SetClassAndMembersUsed(IClassDeclaration classDeclaration) { ITypeElement typeElement = classDeclaration.DeclaredElement; if (typeElement == null || (typeElement is IClass == false)) { return; } foreach (ITypeMember typeMember in typeElement.GetMembers()) { var method = typeMember as IMethod; if (method != null) { usages.SetElementState(method, UsageState.ALL_MASK); } } usages.SetElementState(typeElement, UsageState.ALL_MASK); }
private void MarkModulesAsUsed([CanBeNull] CollectUsagesStageProcess usagesStageProcess) { if (usagesStageProcess != null) { IEnumerable <IClass> nancyModules = NancyUtil.GetAvailableModules(DaemonProcess.PsiModule, searchDomainFactory.CreateSearchDomain(DaemonProcess.SourceFile), DaemonProcess.SourceFile.ResolveContext, true, null).SelectMany(_ => _.Value); foreach (IClass @class in nancyModules) { InterruptableActivityCookie.CheckAndThrow(); collectUsagesStageProcess.SetElementState(@class, UsageState.ACCESSED | UsageState.TYPEOF); } } }