Program: 85749
Project: 85749
Buggy source:
private boolean solveIfVariableReference(ASTCssNode node,IScope scope){
  IScopeAwareExpressionsEvaluator expressionEvaluator=new IScopeAwareExpressionsEvaluator(scope,problemsHandler,configuration);
switch (node.getType()) {
case VARIABLE:
{
      Expression replacement=expressionEvaluator.evaluate((Variable)node);
      manipulator.replaceAndSynchronizeSilentness(node,replacement);
      return true;
    }
case INDIRECT_VARIABLE:
{
    Expression replacement=expressionEvaluator.evaluate((IndirectVariable)node);
    manipulator.replaceAndSynchronizeSilentness(node,replacement);
    return true;
  }
case STRING_EXPRESSION:
{
  Expression replacement=expressionEvaluator.evaluate((CssString)node);
  manipulator.replaceAndSynchronizeSilentness(node,replacement);
  return true;
}
case ESCAPED_VALUE:
{
Expression replacement=expressionEvaluator.evaluate((EscapedValue)node);
manipulator.replaceAndSynchronizeSilentness(node,replacement);
return true;
}
case EMBEDDED_SCRIPT:
{
Expression replacement=expressionEvaluator.evaluate((EmbeddedScript)node);
manipulator.replaceAndSynchronizeSilentness(node,replacement);
return true;
}
case ESCAPED_SELECTOR:
{
SimpleSelector replacement=interpolateEscapedSelector((EscapedSelector)node,expressionEvaluator);
manipulator.replaceAndSynchronizeSilentness(node,replacement);
return true;
}
case FIXED_NAME_PART:
{
FixedNamePart part=(FixedNamePart)node;
FixedNamePart replacement=interpolateFixedNamePart(part,expressionEvaluator);
manipulator.replaceMemberAndSynchronizeSilentness(part,replacement);
return true;
}
case VARIABLE_NAME_PART:
{
VariableNamePart part=(VariableNamePart)node;
Expression value=expressionEvaluator.evaluate(part.getVariable());
FixedNamePart fixedName=toFixedName(value,node.getUnderlyingStructure(),part);
FixedNamePart replacement=interpolateFixedNamePart(fixedName,expressionEvaluator);
manipulator.replaceMemberAndSynchronizeSilentness(part,replacement);
return true;
}
default :
}
return false;
}

Fixed version (ground truth):
private boolean solveIfVariableReference(ASTCssNode node,IScope scope){
  ExpressionsEvaluator expressionEvaluator=new ExpressionsEvaluator(scope,problemsHandler,configuration);
switch (node.getType()) {
case VARIABLE:
{
      Expression replacement=expressionEvaluator.evaluate((Variable)node);
      manipulator.replaceAndSynchronizeSilentness(node,replacement);
      return true;
    }
case INDIRECT_VARIABLE:
{
    Expression replacement=expressionEvaluator.evaluate((IndirectVariable)node);
    manipulator.replaceAndSynchronizeSilentness(node,replacement);
    return true;
  }
case STRING_EXPRESSION:
{
  Expression replacement=expressionEvaluator.evaluate((CssString)node);
  manipulator.replaceAndSynchronizeSilentness(node,replacement);
  return true;
}
case ESCAPED_VALUE:
{
Expression replacement=expressionEvaluator.evaluate((EscapedValue)node);
manipulator.replaceAndSynchronizeSilentness(node,replacement);
return true;
}
case EMBEDDED_SCRIPT:
{
Expression replacement=expressionEvaluator.evaluate((EmbeddedScript)node);
manipulator.replaceAndSynchronizeSilentness(node,replacement);
return true;
}
case ESCAPED_SELECTOR:
{
SimpleSelector replacement=interpolateEscapedSelector((EscapedSelector)node,expressionEvaluator);
manipulator.replaceAndSynchronizeSilentness(node,replacement);
return true;
}
case FIXED_NAME_PART:
{
FixedNamePart part=(FixedNamePart)node;
FixedNamePart replacement=interpolateFixedNamePart(part,expressionEvaluator);
manipulator.replaceMemberAndSynchronizeSilentness(part,replacement);
return true;
}
case VARIABLE_NAME_PART:
{
VariableNamePart part=(VariableNamePart)node;
Expression value=expressionEvaluator.evaluate(part.getVariable());
FixedNamePart fixedName=toFixedName(value,node.getUnderlyingStructure(),part);
FixedNamePart replacement=interpolateFixedNamePart(fixedName,expressionEvaluator);
manipulator.replaceMemberAndSynchronizeSilentness(part,replacement);
return true;
}
default :
}
return false;
}