Used 'DefaultInfo' instead of `ctx.default_provider`.

This follows our CamelCaseInfo naming conventions for providers.

RELNOTES: None.
PiperOrigin-RevId: 152832215
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
index f5313b8..1e7deca 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
@@ -26,7 +26,6 @@
 import com.google.devtools.build.lib.packages.PackageSpecification;
 import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier;
 import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.rules.SkylarkRuleContext;
 import com.google.devtools.build.lib.syntax.ClassObject;
 import com.google.devtools.build.lib.syntax.EvalException;
 import com.google.devtools.build.lib.syntax.EvalUtils;
@@ -109,7 +108,7 @@
   public Object getValue(String name) {
     // Standard fields should be proxied to their default provider object
     DefaultProvider defaultProvider =
-        (DefaultProvider) get(SkylarkRuleContext.getDefaultProvider().getKey());
+        (DefaultProvider) get(DefaultProvider.SKYLARK_CONSTRUCTOR.getKey());
     switch (name) {
       case FILES_FIELD:
       case DEFAULT_RUNFILES_FIELD:
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DefaultProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/DefaultProvider.java
index c0c2a31..93b2646 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DefaultProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DefaultProvider.java
@@ -16,9 +16,10 @@
 import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.events.Location;
 import com.google.devtools.build.lib.packages.ClassObjectConstructor;
+import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
 import com.google.devtools.build.lib.packages.SkylarkClassObject;
-import com.google.devtools.build.lib.rules.SkylarkRuleContext;
 import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
 import java.util.Map;
 
@@ -31,6 +32,17 @@
   private static final String DEFAULT_RUNFILES_FIELD = "default_runfiles";
   private static final String FILES_FIELD = "files";
 
+  public static final String SKYLARK_NAME = "DefaultInfo";
+  public static final ClassObjectConstructor SKYLARK_CONSTRUCTOR =
+      new NativeClassObjectConstructor(SKYLARK_NAME) {
+        @Override
+        protected SkylarkClassObject createInstanceFromSkylark(Object[] args, Location loc) {
+          @SuppressWarnings("unchecked")
+          Map<String, Object> kwargs = (Map<String, Object>) args[0];
+          return new SkylarkClassObject(this, kwargs, loc);
+        }
+      };
+
   private DefaultProvider(ClassObjectConstructor constructor, Map<String, Object> values) {
     super(constructor, values);
   }
@@ -52,7 +64,6 @@
         FILES_FIELD, SkylarkNestedSet.of(Artifact.class, fileProvider.getFilesToBuild()));
     attrBuilder.put(FilesToRunProvider.SKYLARK_NAME, filesToRunProvider);
 
-    ClassObjectConstructor constructor = SkylarkRuleContext.getDefaultProvider();
-    return new DefaultProvider(constructor, attrBuilder.build());
+    return new DefaultProvider(SKYLARK_CONSTRUCTOR, attrBuilder.build());
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
index 0fe798b..e7ec0dd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
@@ -22,7 +22,6 @@
 import com.google.devtools.build.lib.packages.ClassObjectConstructor;
 import com.google.devtools.build.lib.packages.FileTarget;
 import com.google.devtools.build.lib.packages.SkylarkClassObject;
-import com.google.devtools.build.lib.rules.SkylarkRuleContext;
 import com.google.devtools.build.lib.rules.fileset.FilesetProvider;
 import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider;
 import com.google.devtools.build.lib.util.FileType;
@@ -50,7 +49,7 @@
     SkylarkProviders skylarkProviders =
         new SkylarkProviders(
             ImmutableMap.<String, Object>of(),
-            ImmutableMap.of(SkylarkRuleContext.getDefaultProvider().getKey(), defaultProvider));
+            ImmutableMap.of(DefaultProvider.SKYLARK_CONSTRUCTOR.getKey(), defaultProvider));
     TransitiveInfoProviderMap.Builder builder =
         TransitiveInfoProviderMap.builder()
             .put(VisibilityProvider.class, this)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
index 453cba5..24803c1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java
@@ -37,6 +37,7 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.analysis.ActionsProvider;
 import com.google.devtools.build.lib.analysis.BaseRuleClasses;
+import com.google.devtools.build.lib.analysis.DefaultProvider;
 import com.google.devtools.build.lib.analysis.OutputGroupProvider;
 import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
 import com.google.devtools.build.lib.cmdline.Label;
@@ -190,6 +191,22 @@
   )
   private static final ClassObjectConstructor struct = NativeClassObjectConstructor.STRUCT;
 
+  @SkylarkSignature(
+    name = "DefaultInfo",
+    returnType = ClassObjectConstructor.class,
+    doc = "A provider that is provided by every rule, even if it iss not returned explicitly. "
+        + "A <code>DefaultInfo</code> accepts all special parameters that can be returned "
+        + "from rule implementation function in a struct, which are <code>runfiles</code>, "
+        + "<code>data_runfiles</code>, <code>default_runfiles</code>, "
+        + "<code>output_groups</code>, <code>instrumented_files</code>, and all "
+        + "<a href=\"skylark-provider.html\">providers</a> that are available on built-in rules. "
+        + "Each instance of the default provider contains the following standard fields: "
+        + "<code>data_runfiles</code>, <code>default_runfiles</code>, <code>files</code>, "
+        + "and <code>files_to_run</code>. The values of these fields are equivalent to the "
+        + "values of the corresponding fields of the target the default provider belongs to."
+  )
+  private static final ClassObjectConstructor defaultInfo = DefaultProvider.SKYLARK_CONSTRUCTOR;
+
   // TODO(bazel-team): Move to a "testing" namespace module. Normally we'd pass an objectType
   // to @SkylarkSignature to do this, but that doesn't work here because we're exposing an already-
   // configured BaseFunction, rather than defining a new BuiltinFunction. This should wait for
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
index 6f0ac7f..b9c7057 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
@@ -18,6 +18,7 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.analysis.ActionsProvider;
 import com.google.devtools.build.lib.analysis.ConfiguredTarget;
+import com.google.devtools.build.lib.analysis.DefaultProvider;
 import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
 import com.google.devtools.build.lib.analysis.RuleContext;
 import com.google.devtools.build.lib.analysis.Runfiles;
@@ -256,7 +257,7 @@
                 "A return value of a rule implementation function should be "
                     + "a sequence of declared providers");
         if (declaredProvider.getConstructor().getKey().equals(
-            SkylarkRuleContext.getDefaultProvider().getKey())) {
+            DefaultProvider.SKYLARK_CONSTRUCTOR.getKey())) {
           parseProviderKeys(declaredProvider, true, ruleContext, loc, executable,
               registeredProviderTypes, builder);
           isParsed = true;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
index 2a32c96..897d77a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
@@ -26,6 +26,7 @@
 import com.google.devtools.build.lib.analysis.ActionsProvider;
 import com.google.devtools.build.lib.analysis.AnalysisUtils;
 import com.google.devtools.build.lib.analysis.ConfigurationMakeVariableContext;
+import com.google.devtools.build.lib.analysis.DefaultProvider;
 import com.google.devtools.build.lib.analysis.FilesToRunProvider;
 import com.google.devtools.build.lib.analysis.LabelExpander;
 import com.google.devtools.build.lib.analysis.LabelExpander.NotUniqueExpansionException;
@@ -595,31 +596,12 @@
     return ruleContext;
   }
 
-  private static final ClassObjectConstructor DEFAULT_PROVIDER =
-      new NativeClassObjectConstructor("default_provider") {
-        @Override
-        protected SkylarkClassObject createInstanceFromSkylark(Object[] args, Location loc) {
-          @SuppressWarnings("unchecked")
-          Map<String, Object> kwargs = (Map<String, Object>) args[0];
-          return new SkylarkClassObject(this, kwargs, loc);
-        }
-      };
-
   @SkylarkCallable(
     name = "default_provider",
     structField = true,
-    doc = "A provider that's provided by every rule, even if it's not returned explicitly. "
-        + "A <code>default_provider</code> accepts all special parameters that can be returned "
-        + "from rule implementation function in a struct, which are <code>runfiles</code>, "
-        + "<code>data_runfiles</code>, <code>default_runfiles</code>, "
-        + "<code>output_groups</code>, <code>instrumented_files</code>, and all "
-        + "<a href=\"skylark-provider.html\">providers</a> that are available on built-in rules. "
-        + "Each instance of the default provider contains the following standard fields: "
-        + "<code>data_runfiles</code>, <code>default_runfiles</code>, <code>files</code>, "
-        + "and <code>files_to_run</code>. The values of these fields are equivalent to the "
-        + "values of the corresponding fields of the target the default provider belongs to.")
+    doc = "Deprecated. Use <a href=\"globals.html#DefaultInfo\">DefaultInfo</a> instead.")
   public static ClassObjectConstructor getDefaultProvider() {
-    return DEFAULT_PROVIDER;
+    return DefaultProvider.SKYLARK_CONSTRUCTOR;
   }
 
   @SkylarkCallable(name = "created_actions",