public static void recordLatestPartialMatchScore(ControlFrame frame) {
    { Proposition prop = null;
      double score = ((FloatWrapper)(KeyValueList.dynamicSlotValue(((QueryIterator)(Logic.$QUERYITERATOR$.get())).dynamicSlots, Logic.SYM_LOGIC_LATEST_POSITIVE_SCORE, Stella.NULL_FLOAT_WRAPPER))).wrapperValue;
      PartialMatchFrame pframe = frame.partialMatchFrame;

      { Keyword testValue000 = frame.state;

        if ((testValue000 == Logic.KWD_AND) ||
            (testValue000 == Logic.KWD_OR)) {
          prop = ((Proposition)((frame.proposition.arguments.theArray)[(frame.argumentCursor)]));
        }
        else {
          prop = frame.proposition;
        }
      }
      if ((pframe.kind == Logic.KWD_AND) &&
          (BooleanWrapper.coerceWrappedBooleanToBoolean(prop.variableTypeP()) &&
           (!pframe.successP))) {
        Logic.$AND_MISSED_A_BINDING$ = true;
      }
      if ((pframe.kind == Logic.KWD_AND) &&
          ((score == 0.0) &&
           ((prop.kind == Logic.KWD_FUNCTION) &&
            (Stella_Object.isaP(prop.arguments.last(), Logic.SGT_LOGIC_PATTERN_VARIABLE) &&
             (Logic.argumentBoundTo(prop.arguments.last()) == null))))) {
        pframe.unboundVars = Cons.cons(((PatternVariable)(prop.arguments.last())), pframe.unboundVars);
      }
      pframe.recordPartialMatchScore(((FloatWrapper)(KeyValueList.dynamicSlotValue(((QueryIterator)(Logic.$QUERYITERATOR$.get())).dynamicSlots, Logic.SYM_LOGIC_LATEST_POSITIVE_SCORE, Stella.NULL_FLOAT_WRAPPER))).wrapperValue, pframe.propositionWeight(prop));
    }
  }