code: void checkConformance() {
      resetErrorReporter();
      // to check conformance we only need to run as much as it takes to execute the SoyConformance
      // pass.
      parse(
          passManagerBuilder()
              // We have to set disableAllTypeChecking to make sure default parameter types don't
              // break calculating TemplateMetadata objects.  This is because SoyConformancePass runs
              // before ResolveExpressionTypesPass which normally populates the parameter types for
              // default params.  With disableAllTypeChecking set an earlier pass will just set those
              // types to unknown
              // TODO(lukes):  change the pass continuation mechanism to avoid generating a template
              // registry if we halt prior to cross template passes.
              .disableAllTypeChecking()
              .addPassContinuationRule(
                  SoyConformancePass.class, PassContinuationRule.STOP_AFTER_PASS));
      throwIfErrorsPresent();
      reportWarnings();
    }
docs: A simple tool to enforce conformance and only conformance.