Make constructors private

Change-Id: Idf2775e07aca1db9e3fa856723e658306f51df37
Reviewed-on: https://dart-review.googlesource.com/c/85762
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 41d8df8..2c1f64a 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -97,12 +97,7 @@
 import 'forest.dart' show Forest;
 
 import 'kernel_shadow_ast.dart' as shadow
-    show
-        InvalidConstructorInvocationJudgment,
-        InvalidWriteJudgment,
-        SyntheticExpressionJudgment,
-        UnresolvedTargetInvocationJudgment,
-        UnresolvedVariableAssignmentJudgment;
+    show SyntheticExpressionJudgment, SyntheticWrapper;
 
 import 'redirecting_factory_body.dart'
     show
@@ -4763,7 +4758,7 @@
 
   @override
   Expression wrapSyntheticExpression(Expression desugared, int charOffset) {
-    return new shadow.SyntheticExpressionJudgment(desugared)
+    return shadow.SyntheticWrapper.wrapSyntheticExpression(desugared)
       ..fileOffset = charOffset;
   }
 
@@ -4776,7 +4771,7 @@
   @override
   Expression wrapInvalidConstructorInvocation(Expression desugared,
       Member constructor, Arguments arguments, int charOffset) {
-    return new shadow.InvalidConstructorInvocationJudgment(
+    return shadow.SyntheticWrapper.wrapInvalidConstructorInvocation(
         desugared, constructor, arguments)
       ..fileOffset = charOffset;
   }
@@ -4784,21 +4779,22 @@
   @override
   Expression wrapInvalidWrite(
       Expression desugared, Expression expression, int charOffset) {
-    return new shadow.InvalidWriteJudgment(desugared, expression)
+    return shadow.SyntheticWrapper.wrapInvalidWrite(desugared, expression)
       ..fileOffset = charOffset;
   }
 
   @override
   Expression wrapUnresolvedTargetInvocation(
       Expression desugared, Arguments arguments, int charOffset) {
-    return new shadow.UnresolvedTargetInvocationJudgment(desugared, arguments)
+    return shadow.SyntheticWrapper.wrapUnresolvedTargetInvocation(
+        desugared, arguments)
       ..fileOffset = charOffset;
   }
 
   @override
   Expression wrapUnresolvedVariableAssignment(
       Expression desugared, bool isCompound, Expression rhs, int charOffset) {
-    return new shadow.UnresolvedVariableAssignmentJudgment(
+    return shadow.SyntheticWrapper.wrapUnresolvedVariableAssignment(
         desugared, isCompound, rhs)
       ..fileOffset = charOffset;
   }
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
index 0f54b2d..3bb2642 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
@@ -91,34 +91,29 @@
         DeferredCheckJudgment,
         ExpressionStatementJudgment,
         FactoryConstructorInvocationJudgment,
-        ShadowFieldInitializer,
         ForInJudgment,
         FunctionDeclarationJudgment,
         FunctionNodeJudgment,
-        IfNullJudgment,
         IfJudgment,
-        IllegalAssignmentJudgment,
-        IndexAssignmentJudgment,
+        IfNullJudgment,
         InvalidSuperInitializerJudgment,
-        ShadowInvalidFieldInitializer,
-        ShadowInvalidInitializer,
         LabeledStatementJudgment,
         LoadLibraryTearOffJudgment,
         MethodInvocationJudgment,
         NamedFunctionExpressionJudgment,
         NullAwareMethodInvocationJudgment,
         NullAwarePropertyGetJudgment,
-        PropertyAssignmentJudgment,
         RedirectingInitializerJudgment,
         ReturnJudgment,
+        ShadowFieldInitializer,
+        ShadowInvalidFieldInitializer,
+        ShadowInvalidInitializer,
         ShadowLargeIntLiteral,
-        StaticAssignmentJudgment,
         SuperInitializerJudgment,
         SuperMethodInvocationJudgment,
         SuperPropertyGetJudgment,
         SwitchCaseJudgment,
         SwitchStatementJudgment,
-        VariableAssignmentJudgment,
         VariableDeclarationJudgment,
         VariableGetJudgment,
         YieldJudgment;
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart
index 5952b75..be45b59 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart
@@ -86,8 +86,6 @@
         Constructor,
         DartType,
         Field,
-        IllegalAssignmentJudgment,
-        IndexAssignmentJudgment,
         Initializer,
         Let,
         LoadLibraryTearOffJudgment,
@@ -96,10 +94,8 @@
         Name,
         NullAwarePropertyGetJudgment,
         Procedure,
-        PropertyAssignmentJudgment,
         PropertyGet,
         PropertySet,
-        StaticAssignmentJudgment,
         StaticSet,
         SuperMethodInvocation,
         SuperMethodInvocationJudgment,
@@ -107,7 +103,6 @@
         SuperPropertySet,
         TreeNode,
         TypeParameter,
-        VariableAssignmentJudgment,
         VariableDeclaration,
         VariableDeclarationJudgment,
         VariableGet,
@@ -123,6 +118,9 @@
         PrefixBuilder,
         TypeDeclarationBuilder;
 
+import 'kernel_shadow_ast.dart' as shadow
+    show PropertyAssignmentJudgment, SyntheticWrapper;
+
 part 'kernel_expression_generator_impl.dart';
 
 abstract class KernelExpressionGenerator implements ExpressionGenerator {
@@ -291,7 +289,7 @@
   /// Creates a data structure for tracking the desugaring of a complex
   /// assignment expression whose right hand side is [rhs].
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new IllegalAssignmentJudgment(rhs);
+      shadow.SyntheticWrapper.wrapIllegalAssignment(rhs);
 }
 
 abstract class KernelGenerator = Generator with KernelExpressionGenerator;
@@ -340,8 +338,10 @@
   }
 
   @override
-  ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new VariableAssignmentJudgment(rhs);
+  ComplexAssignmentJudgment startComplexAssignment(Expression rhs) {
+    return shadow.SyntheticWrapper.wrapVariableAssignment(rhs)
+      ..fileOffset = offsetForToken(token);
+  }
 
   @override
   void printOn(StringSink sink) {
@@ -385,7 +385,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new PropertyAssignmentJudgment(receiver, rhs);
+      shadow.SyntheticWrapper.wrapPropertyAssignment(receiver, rhs);
 
   @override
   void printOn(StringSink sink) {
@@ -498,7 +498,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new PropertyAssignmentJudgment(null, rhs);
+      shadow.SyntheticWrapper.wrapPropertyAssignment(null, rhs);
 
   @override
   void printOn(StringSink sink) {
@@ -572,7 +572,8 @@
       ..fileOffset = offset;
     if (complexAssignment != null) {
       body = makeLet(receiver, nullAwareGuard);
-      PropertyAssignmentJudgment kernelPropertyAssign = complexAssignment;
+      shadow.PropertyAssignmentJudgment kernelPropertyAssign =
+          complexAssignment;
       kernelPropertyAssign.nullAwareGuard = nullAwareGuard;
       kernelPropertyAssign.desugared = body;
       return kernelPropertyAssign;
@@ -589,7 +590,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new PropertyAssignmentJudgment(receiverExpression, rhs);
+      shadow.SyntheticWrapper.wrapPropertyAssignment(receiverExpression, rhs);
 
   @override
   void printOn(StringSink sink) {
@@ -671,7 +672,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new PropertyAssignmentJudgment(null, rhs, isSuper: true);
+      shadow.SyntheticWrapper.wrapPropertyAssignment(null, rhs, isSuper: true);
 
   @override
   void printOn(StringSink sink) {
@@ -810,7 +811,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new IndexAssignmentJudgment(receiver, index, rhs);
+      shadow.SyntheticWrapper.wrapIndexAssignment(receiver, index, rhs);
 
   @override
   void printOn(StringSink sink) {
@@ -934,7 +935,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new IndexAssignmentJudgment(null, index, rhs);
+      shadow.SyntheticWrapper.wrapIndexAssignment(null, index, rhs);
 
   @override
   void printOn(StringSink sink) {
@@ -1071,7 +1072,8 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new IndexAssignmentJudgment(null, index, rhs, isSuper: true);
+      shadow.SyntheticWrapper.wrapIndexAssignment(null, index, rhs,
+          isSuper: true);
 
   @override
   void printOn(StringSink sink) {
@@ -1151,7 +1153,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new StaticAssignmentJudgment(rhs);
+      shadow.SyntheticWrapper.wrapStaticAssignment(rhs);
 
   @override
   void printOn(StringSink sink) {
@@ -1235,7 +1237,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) =>
-      new StaticAssignmentJudgment(rhs);
+      shadow.SyntheticWrapper.wrapStaticAssignment(rhs);
 }
 
 class KernelTypeUseGenerator extends KernelReadOnlyAccessGenerator
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator_impl.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator_impl.dart
index ae6fc90..f67e700 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator_impl.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator_impl.dart
@@ -407,7 +407,7 @@
 
   @override
   ComplexAssignmentJudgment startComplexAssignment(Expression rhs) {
-    return new IllegalAssignmentJudgment(rhs,
+    return shadow.SyntheticWrapper.wrapIllegalAssignment(rhs,
         assignmentOffset: offsetForToken(token));
   }
 
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
index 88ad954..32ec3c5 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
@@ -381,7 +381,7 @@
   /// pre-decrement.
   bool isPreIncDec = false;
 
-  ComplexAssignmentJudgment(this.rhs) : super(null);
+  ComplexAssignmentJudgment._(this.rhs) : super._(null);
 
   String toString() {
     var parts = _getToStringParts();
@@ -513,9 +513,9 @@
   /// Indicates whether this assignment uses `super`.
   final bool isSuper;
 
-  ComplexAssignmentJudgmentWithReceiver(
+  ComplexAssignmentJudgmentWithReceiver._(
       this.receiver, Expression rhs, this.isSuper)
-      : super(rhs);
+      : super._(rhs);
 
   @override
   List<String> _getToStringParts() {
@@ -845,8 +845,8 @@
   /// If `-1`, then there is no separate location for invalid assignment.
   final int assignmentOffset;
 
-  IllegalAssignmentJudgment(Expression rhs, {this.assignmentOffset: -1})
-      : super(rhs) {
+  IllegalAssignmentJudgment._(Expression rhs, {this.assignmentOffset: -1})
+      : super._(rhs) {
     rhs.parent = this;
   }
 
@@ -867,9 +867,9 @@
   /// In an assignment to an index expression, the index expression.
   final Expression index;
 
-  IndexAssignmentJudgment(Expression receiver, this.index, Expression rhs,
+  IndexAssignmentJudgment._(Expression receiver, this.index, Expression rhs,
       {bool isSuper: false})
-      : super(receiver, rhs, isSuper);
+      : super._(receiver, rhs, isSuper);
 
   Arguments _getInvocationArguments(
       ShadowTypeInferrer inferrer, Expression invocation) {
@@ -1235,9 +1235,9 @@
   /// expression that guards the access; otherwise `null`.
   ConditionalExpression nullAwareGuard;
 
-  PropertyAssignmentJudgment(Expression receiver, Expression rhs,
+  PropertyAssignmentJudgment._(Expression receiver, Expression rhs,
       {bool isSuper: false})
-      : super(receiver, rhs, isSuper);
+      : super._(receiver, rhs, isSuper);
 
   @override
   List<String> _getToStringParts() {
@@ -1306,7 +1306,7 @@
 
 /// Concrete shadow object representing an assignment to a static variable.
 class StaticAssignmentJudgment extends ComplexAssignmentJudgment {
-  StaticAssignmentJudgment(Expression rhs) : super(rhs);
+  StaticAssignmentJudgment._(Expression rhs) : super._(rhs);
 
   @override
   DartType _getWriteType(ShadowTypeInferrer inferrer) {
@@ -1418,9 +1418,9 @@
   final Member constructor;
   final Arguments arguments;
 
-  InvalidConstructorInvocationJudgment(
+  InvalidConstructorInvocationJudgment._(
       kernel.Expression desugared, this.constructor, this.arguments)
-      : super(desugared);
+      : super._(desugared);
 
   ArgumentsJudgment get argumentJudgments => arguments;
 
@@ -1435,8 +1435,8 @@
 class InvalidWriteJudgment extends SyntheticExpressionJudgment {
   final Expression expression;
 
-  InvalidWriteJudgment(kernel.Expression desugared, this.expression)
-      : super(desugared);
+  InvalidWriteJudgment._(kernel.Expression desugared, this.expression)
+      : super._(desugared);
 
   @override
   void acceptInference(InferenceVistor visitor, DartType typeContext) {
@@ -1452,7 +1452,7 @@
 class SyntheticExpressionJudgment extends Let implements ExpressionJudgment {
   DartType inferredType;
 
-  SyntheticExpressionJudgment(Expression desugared)
+  SyntheticExpressionJudgment._(Expression desugared)
       : super(new VariableDeclaration('_', initializer: new NullLiteral()),
             desugared);
 
@@ -1756,7 +1756,7 @@
 }
 
 class VariableAssignmentJudgment extends ComplexAssignmentJudgment {
-  VariableAssignmentJudgment(Expression rhs) : super(rhs);
+  VariableAssignmentJudgment._(Expression rhs) : super._(rhs);
 
   @override
   DartType _getWriteType(ShadowTypeInferrer inferrer) {
@@ -1855,9 +1855,9 @@
 class UnresolvedTargetInvocationJudgment extends SyntheticExpressionJudgment {
   final ArgumentsJudgment argumentsJudgment;
 
-  UnresolvedTargetInvocationJudgment(
+  UnresolvedTargetInvocationJudgment._(
       kernel.Expression desugared, this.argumentsJudgment)
-      : super(desugared);
+      : super._(desugared);
 
   @override
   void acceptInference(InferenceVistor visitor, DartType typeContext) {
@@ -1871,9 +1871,9 @@
   final bool isCompound;
   final Expression rhs;
 
-  UnresolvedVariableAssignmentJudgment(
+  UnresolvedVariableAssignmentJudgment._(
       kernel.Expression desugared, this.isCompound, this.rhs)
-      : super(desugared);
+      : super._(desugared);
 
   @override
   void acceptInference(InferenceVistor visitor, DartType typeContext) {
@@ -1976,3 +1976,57 @@
 
   visitChildren(v) => unsupported("visitChildren", -1, null);
 }
+
+class SyntheticWrapper {
+  static Expression wrapIllegalAssignment(Expression rhs,
+      {int assignmentOffset: -1}) {
+    return new IllegalAssignmentJudgment._(rhs,
+        assignmentOffset: assignmentOffset);
+  }
+
+  static Expression wrapIndexAssignment(
+      Expression receiver, Expression index, Expression rhs,
+      {bool isSuper: false}) {
+    return new IndexAssignmentJudgment._(receiver, index, rhs,
+        isSuper: isSuper);
+  }
+
+  static Expression wrapInvalidConstructorInvocation(
+      kernel.Expression desugared, Member constructor, Arguments arguments) {
+    return new InvalidConstructorInvocationJudgment._(
+        desugared, constructor, arguments);
+  }
+
+  static Expression wrapInvalidWrite(
+      Expression desugared, Expression expression) {
+    return new InvalidWriteJudgment._(desugared, expression);
+  }
+
+  static Expression wrapPropertyAssignment(Expression receiver, Expression rhs,
+      {bool isSuper: false}) {
+    return new PropertyAssignmentJudgment._(receiver, rhs, isSuper: isSuper);
+  }
+
+  static Expression wrapStaticAssignment(Expression rhs) {
+    return new StaticAssignmentJudgment._(rhs);
+  }
+
+  static Expression wrapSyntheticExpression(Expression desugared) {
+    return new SyntheticExpressionJudgment._(desugared);
+  }
+
+  static Expression wrapUnresolvedTargetInvocation(
+      Expression desugared, Arguments arguments) {
+    return new UnresolvedTargetInvocationJudgment._(desugared, arguments);
+  }
+
+  static Expression wrapUnresolvedVariableAssignment(
+      Expression desugared, bool isCompound, Expression rhs) {
+    return new UnresolvedVariableAssignmentJudgment._(
+        desugared, isCompound, rhs);
+  }
+
+  static Expression wrapVariableAssignment(Expression rhs) {
+    return new VariableAssignmentJudgment._(rhs);
+  }
+}