Result (Expression @NotNull [] params, ExpressionContext context) { if (params.length != 1) { return null; } final Result paramResult = params[0].calculateResult(context); if (paramResult == null) { return null; } String param = paramResult.toString(); int lastDot = param.lastIndexOf('.'); if (lastDot >= 0) { param = param.substring(lastDot+1); } if (param.endsWith(")")) { int lastParen = param.lastIndexOf('('); if (lastParen > 0) { param = param.substring(0, lastParen); } } final String result = smartUnPluralize(param); return result != null && PyNames.isIdentifier(result) ? new TextResult(result) : null; }