@Override public void visitClosureExpression(final ClosureExpression expression) { super.visitClosureExpression(expression); if (inBuilderMethod) { Statement oldCode = expression.getCode(); BlockStatement block = oldCode instanceof BlockStatement? ((BlockStatement)oldCode): new BlockStatement(Arrays.asList(oldCode), new VariableScope()); List<Statement> statements = block.getStatements(); if (!statements.isEmpty()) { Statement first = statements.get(0); Statement last = statements.get(statements.size()-1); if (expression.getLineNumber()<first.getLineNumber()) { // there's a new line between { -> ... and the first statement statements.add(0,createNewLine(expression)); } if (expression.getLastLineNumber()>last.getLastLineNumber()) { // there's a new line between { -> ... and the first statement statements.add(createNewLine(expression)); } } expression.setCode(block); } }
private Block addBlock(Method method, Statement stat) throws InvalidSpecCompileException { String label = stat.getStatementLabel(); for (BlockParseInfo blockInfo: BlockParseInfo.values()) { if (!label.equals(blockInfo.toString())) continue; checkIsValidSuccessor(method, blockInfo, stat.getLineNumber(), stat.getColumnNumber()); Block block = blockInfo.addNewBlock(method); String description = getDescription(stat); if (description == null) block.getAst().add(stat); else block.getDescriptions().add(description); return block; } throw new InvalidSpecCompileException(stat, "Unrecognized block label: " + label); }
@Override public void visitClosureExpression(final ClosureExpression expression) { super.visitClosureExpression(expression); if (inBuilderMethod) { Statement oldCode = expression.getCode(); BlockStatement block = oldCode instanceof BlockStatement? ((BlockStatement)oldCode): new BlockStatement(Collections.singletonList(oldCode), new VariableScope()); List<Statement> statements = block.getStatements(); if (!statements.isEmpty()) { Statement first = statements.get(0); Statement last = statements.get(statements.size()-1); if (expression.getLineNumber()<first.getLineNumber()) { // there's a new line between { -> ... and the first statement statements.add(0,createNewLine(expression)); } if (expression.getLastLineNumber()>last.getLastLineNumber()) { // there's a new line between { -> ... and the first statement statements.add(createNewLine(expression)); } } expression.setCode(block); } }
new SyntaxException(failMessage, statement.getLineNumber(), statement.getColumnNumber()), sourceUnit ); new SyntaxException(makePluginManagementError(failureMessage), statement.getLineNumber(), statement.getColumnNumber()), sourceUnit); ); sourceUnit.getErrorCollector().addError( new SyntaxException(message, statement.getLineNumber(), statement.getColumnNumber()), sourceUnit );
&& ((code.getLineNumber() < 0 && code.getColumnNumber() < 0) || (code.getLastLineNumber() < 0 && code.getLastColumnNumber() < 0))) { BlockStatement block = (BlockStatement) code; List statements = block.getStatements(); if (statements != null && !statements.isEmpty()) { if (code.getLineNumber() < 0 && code.getColumnNumber() < 0) { Statement first = (Statement) statements.get(0); code.setLineNumber(first.getLineNumber()); code.setColumnNumber(first.getColumnNumber());