@Override
 public void appendToRuleKey(RuleKeyObjectSink sink) {
   sink.setReflectively("input", input);
 }
 @Override
 public void appendToRuleKey(RuleKeyObjectSink sink) {
   sink.setReflectively("infer-version", inferVersion.get())
       .setReflectively("clang-compiler", clangCompiler.get())
       .setReflectively("clang-plugin", clangPlugin.get());
 }
 @Override
 public void appendToRuleKey(RuleKeyObjectSink sink) {
   sink.setReflectively("goos", getGoOs()).setReflectively("goarch", getGoArch());
 }