Optimize the memory usage of aspects inherited propagation information.
In AspectDescriptor and Attribute objects, set the inherited required providers and inherited attribute aspects to null and only initialize them if the aspect is required.
PiperOrigin-RevId: 378385409
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Aspect.java b/src/main/java/com/google/devtools/build/lib/packages/Aspect.java
index c83d2f6..a58f744 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Aspect.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Aspect.java
@@ -82,7 +82,7 @@
new AspectDescriptor(
Preconditions.checkNotNull(aspectClass),
Preconditions.checkNotNull(parameters),
- Preconditions.checkNotNull(inheritedRequiredProviders),
+ inheritedRequiredProviders,
inheritedAttributeAspects);
this.aspectDefinition = Preconditions.checkNotNull(aspectDefinition);
}