Collection<SliceUsage> (@NotNull SliceUsage usage) { if (usage instanceof JavaSliceUsage) return null; PsiElement element = usage.getElement(); SliceUsage parent = usage.getParent(); if (usage.params.dataFlowToThis && element instanceof PsiMethod) { return SliceUtil.collectMethodReturnValues( parent, parent instanceof JavaSliceUsage ? ((JavaSliceUsage)parent).getSubstitutor() : PsiSubstitutor.EMPTY, (PsiMethod) element ); } if (!(element instanceof PsiExpression || element instanceof PsiVariable)) return null; SliceUsage newUsage = parent != null ? new JavaSliceUsage(element, parent, PsiSubstitutor.EMPTY) : createRootUsage(element, usage.params); return Collections.singletonList(newUsage); }