@Override public void visitReturnStatement(ReturnStatementTree tree) { checkExpression(returnType, tree.expression()); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { reportIssue(tree.returnKeyword(), tree.kind()); super.visitReturnStatement(tree); }
@Override public void visitReturnStatement(ReturnStatementTree tree) { addLines(tree.returnKeyword(), tree.semicolonToken()); }
@Override public void visitReturnStatement(ReturnStatementTree tree) { Tree parent = tree.parent(); while (!parent.is(Tree.Kind.METHOD)) { parent = parent.parent(); if (parent == null) { // This occurs when the return statement is within a constructor return; } } String nonNullAnnotation = nonNullAnnotation(((MethodTree) parent).symbol()); if (nonNullAnnotation == null) { return; } if (isLocalExpression(tree.expression())) { checkReturnedValue(tree, nonNullAnnotation); } }
private static SyntaxToken jumpKeyword(Tree jumpStatement) { switch (jumpStatement.kind()) { case BREAK_STATEMENT: return ((BreakStatementTree) jumpStatement).breakKeyword(); case CONTINUE_STATEMENT: return ((ContinueStatementTree) jumpStatement).continueKeyword(); case RETURN_STATEMENT: return ((ReturnStatementTree) jumpStatement).returnKeyword(); case THROW_STATEMENT: return ((ThrowStatementTree) jumpStatement).throwKeyword(); default: throw new IllegalStateException("Unexpected jump statement."); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { Tree parent = tree.parent(); while (!parent.is(Tree.Kind.METHOD)) { parent = parent.parent(); if (parent == null) { // This occurs when the return statement is within a constructor return; } } String nonNullAnnotation = nonNullAnnotation(((MethodTree) parent).symbol()); if (nonNullAnnotation == null) { return; } if (isLocalExpression(tree.expression())) { checkReturnedValue(tree, nonNullAnnotation); } }
private static SyntaxToken jumpKeyword(Tree jumpStatement) { switch (jumpStatement.kind()) { case BREAK_STATEMENT: return ((BreakStatementTree) jumpStatement).breakKeyword(); case CONTINUE_STATEMENT: return ((ContinueStatementTree) jumpStatement).continueKeyword(); case RETURN_STATEMENT: return ((ReturnStatementTree) jumpStatement).returnKeyword(); case THROW_STATEMENT: return ((ThrowStatementTree) jumpStatement).throwKeyword(); default: throw new IllegalStateException("Unexpected jump statement."); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { checkExpression(returnType, tree.expression()); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { super.visitReturnStatement(tree); ExpressionTree expression = tree.expression(); if (expression != null && ((JavaType) expression.symbolType()).isTagged(JavaType.DEFERRED)) { // get owner of return (method or lambda) Tree parent = tree.parent(); while (!parent.is(Tree.Kind.METHOD, Tree.Kind.LAMBDA_EXPRESSION)) { parent = parent.parent(); if(parent == null) { throw new IllegalStateException("Return statement was unexpected here"); } } Type infered; if(parent.is(Tree.Kind.METHOD)) { infered = ((MethodTree) parent).returnType().symbolType(); } else { infered = ((LambdaExpressionTree) parent).symbolType(); } setInferedType(infered, (DeferredType) expression.symbolType()); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { reportIssue(tree.returnKeyword(), tree.kind()); super.visitReturnStatement(tree); }
@Override public void visitReturnStatement(ReturnStatementTree tree) { addLines(tree.returnKeyword(), tree.semicolonToken()); }
@Override public void visitReturnStatement(ReturnStatementTree tree) { checkExpression(returnType, tree.expression()); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { super.visitReturnStatement(tree); ExpressionTree expression = tree.expression(); if (expression != null && ((JavaType) expression.symbolType()).isTagged(JavaType.DEFERRED)) { // get owner of return (method or lambda) Tree parent = tree.parent(); while (!parent.is(Tree.Kind.METHOD, Tree.Kind.LAMBDA_EXPRESSION)) { parent = parent.parent(); if(parent == null) { throw new IllegalStateException("Return statement was unexpected here"); } } Type infered; if(parent.is(Tree.Kind.METHOD)) { infered = ((MethodTree) parent).returnType().symbolType(); } else { infered = ((LambdaExpressionTree) parent).symbolType(); } setInferedType(infered, (DeferredType) expression.symbolType()); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { executionState.checkUsageOfClosables(tree.expression()); }
private boolean isReturningNull(ReturnStatementTree tree) { return tree.expression() != null && tree.expression().is(Tree.Kind.NULL_LITERAL); }
@Override public void visitReturnStatement(ReturnStatementTree tree) { if (tree.expression() != null && tree.expression().is(Kind.IDENTIFIER)) { IdentifierTree identifier = (IdentifierTree) tree.expression(); declarationOfReturnedVariable = getDeclaration(identifier); } super.visitReturnStatement(tree); }
@Override public void visitReturnStatement(ReturnStatementTree tree) { if (tree.expression() != null && tree.expression().is(Kind.IDENTIFIER)) { IdentifierTree identifier = (IdentifierTree) tree.expression(); declarationOfReturnedVariable = getDeclaration(identifier); } super.visitReturnStatement(tree); }
@Override public void visitReturnStatement(ReturnStatementTree tree) { if (returnsIntegerMinValue(tree.expression())) { reportIssue(tree.expression(), "Simply return -1"); } }
@Override public void visitReturnStatement(ReturnStatementTree tree) { if (tree.expression().is(Kind.NULL_LITERAL)) { reportIssue(tree.expression(), "Null is returned but a \"Boolean\" is expected."); } }
private static boolean isReturnWithExpression(Tree tree) { if (tree.is(Tree.Kind.RETURN_STATEMENT)) { return ((ReturnStatementTree) tree).expression() != null; } return false; }