private boolean tryConvertAssignmentExpressionIntoVariableDeclaration( final BlockStatement block, final Expression expression, final AstType type, final String variableName) { if (expression instanceof AssignmentExpression) { final AssignmentExpression assignment = (AssignmentExpression) expression; if (assignment.getOperator() == AssignmentOperatorType.ASSIGN) { if (assignment.getLeft() instanceof IdentifierExpression) { final IdentifierExpression identifier = (IdentifierExpression) assignment.getLeft(); if (StringUtilities.equals(identifier.getIdentifier(), variableName)) { variablesToDeclare.add( new VariableToDeclare( type, variableName, identifier.getUserData(Keys.VARIABLE), assignment, block ) ); return true; } } } } return false; }
private AnalysisResult analyze(final VariableToDeclare v, final AstNode scope) { final BlockStatement block = v.getBlock(); final DefiniteAssignmentAnalysis analysis = new DefiniteAssignmentAnalysis(context, block); if (v.getInsertionPoint() != null) { final Statement parentStatement = v.getInsertionPoint(); analysis.setAnalyzedRange(parentStatement, block); } else { final ExpressionStatement parentStatement = (ExpressionStatement) v.getReplacedAssignment().getParent(); analysis.setAnalyzedRange(parentStatement, block); } analysis.analyze(v.getName()); final boolean needsInitializer = !analysis.getUnassignedVariableUses().isEmpty(); final IsSingleAssignmentVisitor isSingleAssignmentVisitor = new IsSingleAssignmentVisitor(v.getName(), v.getReplacedAssignment()); scope.acceptVisitor(isSingleAssignmentVisitor, null); return new AnalysisResult(isSingleAssignmentVisitor.isSingleAssignment(), needsInitializer); }
final VariableToDeclare vtd = new VariableToDeclare(type, variableName, variable, declarationPoint.get(), block); variablesToDeclare.add(vtd); final VariableToDeclare vtd = new VariableToDeclare(type, variableName, variable, declarationPoint.get(), block); variablesToDeclare.add(vtd);
final VariableToDeclare vtd = new VariableToDeclare(type, variableName, variable, declarationPoint.get(), block); variablesToDeclare.add(vtd); final VariableToDeclare vtd = new VariableToDeclare(type, variableName, variable, declarationPoint.get(), block); variablesToDeclare.add(vtd);
final VariableToDeclare vtd = new VariableToDeclare(type, variableName, variable, declarationPoint.get(), block); variablesToDeclare.add(vtd); final VariableToDeclare vtd = new VariableToDeclare(type, variableName, variable, declarationPoint.get(), block); variablesToDeclare.add(vtd);
final Variable variable = v.getVariable(); final AssignmentExpression replacedAssignment = v.getReplacedAssignment(); final BlockStatement block = (BlockStatement) v.getInsertionPoint().getParent(); final AnalysisResult analysisResult = analyze(v, block); final VariableDeclarationStatement declaration = new VariableDeclarationStatement(v.getType().clone(), v.getName(), Expression.MYSTERY_OFFSET); Statement insertionPoint = v.getInsertionPoint(); final Variable variable = v.getVariable(); final AssignmentExpression replacedAssignment = v.getReplacedAssignment(); final VariableInitializer initializer = new VariableInitializer(v.getName()); final Expression right = replacedAssignment.getRight(); final AstNode parent = replacedAssignment.getParent(); declaration.setType(v.getType().clone()); declaration.getVariables().add(initializer);
final Variable variable = v.getVariable(); final AssignmentExpression replacedAssignment = v.getReplacedAssignment(); final BlockStatement block = (BlockStatement) v.getInsertionPoint().getParent(); final AnalysisResult analysisResult = analyze(v, block); final VariableDeclarationStatement declaration = new VariableDeclarationStatement(v.getType().clone(), v.getName(), Expression.MYSTERY_OFFSET); Statement insertionPoint = v.getInsertionPoint(); final Variable variable = v.getVariable(); final AssignmentExpression replacedAssignment = v.getReplacedAssignment(); final VariableInitializer initializer = new VariableInitializer(v.getName()); final Expression right = replacedAssignment.getRight(); final AstNode parent = replacedAssignment.getParent(); declaration.setType(v.getType().clone()); declaration.getVariables().add(initializer);
final Variable variable = v.getVariable(); final AssignmentExpression replacedAssignment = v.getReplacedAssignment(); final BlockStatement block = (BlockStatement) v.getInsertionPoint().getParent(); final AnalysisResult analysisResult = analyze(v, block); final VariableDeclarationStatement declaration = new VariableDeclarationStatement(v.getType().clone(), v.getName(), Expression.MYSTERY_OFFSET); Statement insertionPoint = v.getInsertionPoint(); final Variable variable = v.getVariable(); final AssignmentExpression replacedAssignment = v.getReplacedAssignment(); final VariableInitializer initializer = new VariableInitializer(v.getName()); final Expression right = replacedAssignment.getRight(); final AstNode parent = replacedAssignment.getParent(); declaration.setType(v.getType().clone()); declaration.getVariables().add(initializer);
private boolean tryConvertAssignmentExpressionIntoVariableDeclaration( final BlockStatement block, final Expression expression, final AstType type, final String variableName) { if (expression instanceof AssignmentExpression) { final AssignmentExpression assignment = (AssignmentExpression) expression; if (assignment.getOperator() == AssignmentOperatorType.ASSIGN) { if (assignment.getLeft() instanceof IdentifierExpression) { final IdentifierExpression identifier = (IdentifierExpression) assignment.getLeft(); if (StringUtilities.equals(identifier.getIdentifier(), variableName)) { variablesToDeclare.add( new VariableToDeclare( type, variableName, identifier.getUserData(Keys.VARIABLE), assignment, block ) ); return true; } } } } return false; }
private boolean tryConvertAssignmentExpressionIntoVariableDeclaration( final BlockStatement block, final Expression expression, final AstType type, final String variableName) { if (expression instanceof AssignmentExpression) { final AssignmentExpression assignment = (AssignmentExpression) expression; if (assignment.getOperator() == AssignmentOperatorType.ASSIGN) { if (assignment.getLeft() instanceof IdentifierExpression) { final IdentifierExpression identifier = (IdentifierExpression) assignment.getLeft(); if (StringUtilities.equals(identifier.getIdentifier(), variableName)) { variablesToDeclare.add( new VariableToDeclare( type, variableName, identifier.getUserData(Keys.VARIABLE), assignment, block ) ); return true; } } } } return false; }
private AnalysisResult analyze(final VariableToDeclare v, final AstNode scope) { final BlockStatement block = v.getBlock(); final DefiniteAssignmentAnalysis analysis = new DefiniteAssignmentAnalysis(context, block); if (v.getInsertionPoint() != null) { final Statement parentStatement = v.getInsertionPoint(); analysis.setAnalyzedRange(parentStatement, block); } else { final ExpressionStatement parentStatement = (ExpressionStatement) v.getReplacedAssignment().getParent(); analysis.setAnalyzedRange(parentStatement, block); } analysis.analyze(v.getName()); final boolean needsInitializer = !analysis.getUnassignedVariableUses().isEmpty(); final IsSingleAssignmentVisitor isSingleAssignmentVisitor = new IsSingleAssignmentVisitor(v.getName(), v.getReplacedAssignment()); scope.acceptVisitor(isSingleAssignmentVisitor, null); return new AnalysisResult(isSingleAssignmentVisitor.isSingleAssignment(), needsInitializer); }
private AnalysisResult analyze(final VariableToDeclare v, final AstNode scope) { final BlockStatement block = v.getBlock(); final DefiniteAssignmentAnalysis analysis = new DefiniteAssignmentAnalysis(context, block); if (v.getInsertionPoint() != null) { final Statement parentStatement = v.getInsertionPoint(); analysis.setAnalyzedRange(parentStatement, block); } else { final ExpressionStatement parentStatement = (ExpressionStatement) v.getReplacedAssignment().getParent(); analysis.setAnalyzedRange(parentStatement, block); } analysis.analyze(v.getName()); final boolean needsInitializer = !analysis.getUnassignedVariableUses().isEmpty(); final IsSingleAssignmentVisitor isSingleAssignmentVisitor = new IsSingleAssignmentVisitor(v.getName(), v.getReplacedAssignment()); scope.acceptVisitor(isSingleAssignmentVisitor, null); return new AnalysisResult(isSingleAssignmentVisitor.isSingleAssignment(), needsInitializer); }