code: Type checkSpeculative(DiagnosticPosition pos, Type t, ResultInfo resultInfo) {
          if (t.hasTag(DEFERRED)) {
              return ((DeferredType)t).check(resultInfo);
          } else {
              return resultInfo.check(pos, t);
          }
      }
docs: Checks a type in the speculative tree against a given result; the type can be either a plain
  type or an argument type,in which case a more complex check is required.