Factor out SingleArgumentConstructor base class.

This is intended to reduce boilerplate across future constructors which
can only take a single argument (matrix-resize, typecasting, etc).

Change-Id: I3f55928d83925d0770934dcb4bece193c5d51605
Bug: skia:11032
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/391304
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
diff --git a/src/sksl/SkSLMetalCodeGenerator.cpp b/src/sksl/SkSLMetalCodeGenerator.cpp
index ee87d9b..2e70ff9 100644
--- a/src/sksl/SkSLMetalCodeGenerator.cpp
+++ b/src/sksl/SkSLMetalCodeGenerator.cpp
@@ -172,7 +172,7 @@
             this->writeConstructor(expr.as<Constructor>(), parentPrecedence);
             break;
         case Expression::Kind::kConstructorDiagonalMatrix:
-            this->writeConstructorDiagonalMatrix(expr.as<ConstructorDiagonalMatrix>(),
+            this->writeSingleArgumentConstructor(expr.as<ConstructorDiagonalMatrix>(),
                                                  parentPrecedence);
             break;
         case Expression::Kind::kIntLiteral:
@@ -1108,7 +1108,7 @@
     this->write(constructorType.isArray() ? "}" : ")");
 }
 
-void MetalCodeGenerator::writeConstructorDiagonalMatrix(const ConstructorDiagonalMatrix& c,
+void MetalCodeGenerator::writeSingleArgumentConstructor(const SingleArgumentConstructor& c,
                                                         Precedence parentPrecedence) {
     this->writeType(c.type());
     this->write("(");