$ blaze cquery --show_config_fragments: include aspects

Aspects can add new rule dependencies via implicit label
attributes (see
https://docs.bazel.build/versions/2.0.0/skylark/aspects.html#aspect-definition-1).
We need to make sure these are included in whatever the rule the aspect
attaches to.

Note that *native* aspects can also declare *direct* fragment dependencies (
Starlark aspects can't). This change doesn't handle that. TBD.

Supports https://github.com/bazelbuild/bazel/issues/10613.

PiperOrigin-RevId: 293669124
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
index 0e07c6d..696e930 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
@@ -26,6 +26,8 @@
 import com.google.devtools.build.lib.actions.Actions.GeneratingActions;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
+import com.google.devtools.build.lib.analysis.config.CoreOptions;
+import com.google.devtools.build.lib.analysis.config.CoreOptions.IncludeConfigFragmentsEnum;
 import com.google.devtools.build.lib.analysis.skylark.SkylarkApiProvider;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -281,6 +283,18 @@
               ruleContext.getOwner(),
               /*outputFiles=*/ null);
 
+      if (ruleContext
+              .getConfiguration()
+              .getOptions()
+              .get(CoreOptions.class)
+              .includeRequiredConfigFragmentsProvider
+          != IncludeConfigFragmentsEnum.OFF) {
+        // This guarantees aspects pass through the requirements of their dependencies. But native
+        // aspects can also declare direct requirements.
+        // TODO(gregce): support native aspect direct requirements.
+        addProvider(new RequiredConfigFragmentsProvider(ruleContext.getRequiredConfigFragments()));
+      }
+
       return new ConfiguredAspect(
           descriptor,
           generatingActions.getActions(),