Esempio n. 1
0
 private void recordAssignment(
     Variable var,
     boolean isDeclaration,
     boolean uninitialized,
     boolean forceVariable,
     Expression expression) {
   if (var == null) {
     return;
   }
   if (!isDeclaration && var.isClosureSharedVariable()) {
     getState().put(var, VariableState.is_var);
   }
   VariableState variableState = getState().get(var);
   if (variableState == null) {
     variableState = uninitialized ? VariableState.is_uninitialized : VariableState.is_final;
     if (getTarget(var) instanceof Parameter) {
       variableState = VariableState.is_var;
     }
   } else {
     variableState = variableState.getNext();
   }
   if (forceVariable) {
     variableState = VariableState.is_var;
   }
   getState().put(var, variableState);
   if (variableState == VariableState.is_var && callback != null) {
     callback.variableNotFinal(var, expression);
   }
 }
Esempio n. 2
0
 public boolean isEffectivelyFinal(Variable v) {
   VariableState state = getState().get(v);
   return (v instanceof Parameter && state == null) || (state != null && state.isFinal());
 }
Esempio n. 3
0
 public void updateEncoding(String s) {
   int k = 0;
   Set<Variable> sortedVariables = new TreeSet<>(states.keySet());
   for (Variable var : sortedVariables) states.put(var, VariableState.fromChar(s.charAt(k++)));
 }