From 002490b9a2376f0b2ea4a37102c5e94fc50a65ba Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Wed, 7 Jun 2023 05:29:12 -0700 Subject: [PATCH] Include name in `repr` of exported `rule`s For an exported rule `foo_library`, `repr(foo_library)` now evaluates to ``, not ``, matching the behavior of native rules more closely. Fixes #17483 Closes #18392. PiperOrigin-RevId: 538458291 Change-Id: I331955655756a3c235be0a93f1394716ddf9849d --- .../lib/analysis/starlark/StarlarkRuleClassFunctions.java | 6 +++++- .../lib/starlark/StarlarkStringRepresentationsTest.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java index e728e052b6cee9..d94b3c26b56da1 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java @@ -991,7 +991,11 @@ public boolean isExported() { @Override public void repr(Printer printer) { - printer.append(""); + if (isExported()) { + printer.append(""); + } else { + printer.append(""); + } } @Override diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java index 35c1f6515d149a..e3b651271c4443 100644 --- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java +++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkStringRepresentationsTest.java @@ -268,7 +268,7 @@ public void testStringRepresentations_functions() throws Exception { @Test public void testStringRepresentations_rules() throws Exception { setBuildLanguageOptions("--experimental_builtins_injection_override=+cc_library"); - assertStringRepresentation("native.cc_library", ""); + assertStringRepresentation("native.cc_library", ""); assertStringRepresentation("def f(): pass", "rule(implementation=f)", ""); }