FunExprOccurrence (@NotNull LighterASTNode funExpr, FileLocalResolver resolver) { LighterAST tree = resolver.getLightTree(); LighterASTNode containingCall = getContainingCall(tree, funExpr); List<LighterASTNode> args = JavaLightTreeUtil.getArgList(tree, containingCall); int argIndex = args == null ? -1 : getArgIndex(args, funExpr); LighterASTNode chainExpr = containingCall; if (chainExpr == null) { LighterASTNode assignment = skipExpressionsUp(tree, funExpr, TokenSet.create(ASSIGNMENT_EXPRESSION)); if (assignment != null) { chainExpr = findExpressionChild(assignment, tree); } } return new FunExprOccurrence(argIndex, createCallChain(resolver, chainExpr)); }