code: boolean consistentChoice(int varIndex) {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.entry(this, tc, "consistentChoice", new Object[]{Integer.valueOf(varIndex)});
  
      JSType field = findDominatingCase(variants[varIndex]);
      JSVariant parent = (JSVariant) field.getParent();
  
      if (parent == null) {
        // This choice is not dominated by any others, so it must be consistent
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "consistentChoice", Boolean.TRUE);
        return true;
      }
  
      int domIndex = parent.getIndex();
  
      if (choiceCache[domIndex] != field.getSiblingPosition()) {
        // This choice is inconsistent with its immediate dominator
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "consistentChoice", Boolean.FALSE);
        return false;
      }
  
      // This choice is consistent with its immediate dominator, but is that
      // dominator itself consistent?
      if (!consistentChoice(domIndex)) {
        choiceCache[domIndex] = -1; // Mark dominator as inconsistent
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "consistentChoice", Boolean.FALSE);
        return false; // and this choice is inconsistent as well
      }
  
      // Otherwise, we are consistent with our dominator, which is itself
      // consistent, so victory.
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "consistentChoice", Boolean.TRUE);
      return true;
    }
docs: concurrency issues.