moved SkSL FunctionDefinition data into IRNode

Change-Id: Ia828de0793ee66301ba315f4593b4d7d69222b4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/326717
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/sksl/SkSLMetalCodeGenerator.cpp b/src/sksl/SkSLMetalCodeGenerator.cpp
index 710bf60..985c9fe 100644
--- a/src/sksl/SkSLMetalCodeGenerator.cpp
+++ b/src/sksl/SkSLMetalCodeGenerator.cpp
@@ -936,7 +936,7 @@
 void MetalCodeGenerator::writeFunction(const FunctionDefinition& f) {
     fRTHeightName = fProgram.fInputs.fRTHeight ? "_globals->_anonInterface0->u_skRTHeight" : "";
     const char* separator = "";
-    if ("main" == f.fDeclaration.name()) {
+    if ("main" == f.declaration().name()) {
         switch (fProgram.fKind) {
             case Program::kFragment_Kind:
                 this->write("fragment Outputs fragmentMain");
@@ -1006,11 +1006,11 @@
         }
         separator = ", ";
     } else {
-        this->writeType(f.fDeclaration.returnType());
+        this->writeType(f.declaration().returnType());
         this->write(" ");
-        this->writeName(f.fDeclaration.name());
+        this->writeName(f.declaration().name());
         this->write("(");
-        Requirements requirements = this->requirements(f.fDeclaration);
+        Requirements requirements = this->requirements(f.declaration());
         if (requirements & kInputs_Requirement) {
             this->write("Inputs _in");
             separator = ", ";
@@ -1036,7 +1036,7 @@
             separator = ", ";
         }
     }
-    for (const auto& param : f.fDeclaration.parameters()) {
+    for (const auto& param : f.declaration().parameters()) {
         this->write(separator);
         separator = ", ";
         this->writeModifiers(param->modifiers(), false);
@@ -1064,7 +1064,7 @@
 
     SkASSERT(!fProgram.fSettings.fFragColorIsInOut);
 
-    if (f.fDeclaration.name() == "main") {
+    if (f.declaration().name() == "main") {
         this->writeGlobalInit();
         this->writeLine("    Outputs _outputStruct;");
         this->writeLine("    thread Outputs* _out = &_outputStruct;");
@@ -1075,13 +1075,13 @@
     StringStream buffer;
     fOut = &buffer;
     fIndentation++;
-    for (const std::unique_ptr<Statement>& stmt : f.fBody->as<Block>().children()) {
+    for (const std::unique_ptr<Statement>& stmt : f.body()->as<Block>().children()) {
         if (!stmt->isEmpty()) {
             this->writeStatement(*stmt);
             this->writeLine();
         }
     }
-    if (f.fDeclaration.name() == "main") {
+    if (f.declaration().name() == "main") {
         switch (fProgram.fKind) {
             case Program::kFragment_Kind:
                 this->writeLine("return *_out;");
@@ -1813,8 +1813,8 @@
         for (const auto& e : fProgram.elements()) {
             if (e->is<FunctionDefinition>()) {
                 const FunctionDefinition& def = e->as<FunctionDefinition>();
-                if (&def.fDeclaration == &f) {
-                    Requirements reqs = this->requirements(def.fBody.get());
+                if (&def.declaration() == &f) {
+                    Requirements reqs = this->requirements(def.body().get());
                     fRequirements[&f] = reqs;
                     return reqs;
                 }