Index: src/sksl/ir/SkSLFunctionDeclaration.h |
diff --git a/src/sksl/ir/SkSLFunctionDeclaration.h b/src/sksl/ir/SkSLFunctionDeclaration.h |
index 52a579a89b9e13dbb2f36e22feaf224d0b04fbe8..ffde0c66c130aedb069da390899b5011eb1cc1af 100644 |
--- a/src/sksl/ir/SkSLFunctionDeclaration.h |
+++ b/src/sksl/ir/SkSLFunctionDeclaration.h |
@@ -8,7 +8,6 @@ |
#ifndef SKSL_FUNCTIONDECLARATION |
#define SKSL_FUNCTIONDECLARATION |
-#include "SkSLExpression.h" |
#include "SkSLModifiers.h" |
#include "SkSLSymbol.h" |
#include "SkSLSymbolTable.h" |
@@ -56,50 +55,6 @@ |
return true; |
} |
- /** |
- * Determine the effective types of this function's parameters and return value when called with |
- * the given arguments. This is relevant for functions with generic parameter types, where this |
- * will collapse the generic types down into specific concrete types. |
- * |
- * Returns true if it was able to select a concrete set of types for the generic function, false |
- * if there is no possible way this can match the argument types. Note that even a true return |
- * does not guarantee that the function can be successfully called with those arguments, merely |
- * indicates that an attempt should be made. If false is returned, the state of |
- * outParameterTypes and outReturnType are undefined. |
- */ |
- bool determineFinalTypes(const std::vector<std::unique_ptr<Expression>>& arguments, |
- std::vector<const Type*>* outParameterTypes, |
- const Type** outReturnType) const { |
- assert(arguments.size() == fParameters.size()); |
- int genericIndex = -1; |
- for (size_t i = 0; i < arguments.size(); i++) { |
- if (fParameters[i]->fType.kind() == Type::kGeneric_Kind) { |
- std::vector<const Type*> types = fParameters[i]->fType.coercibleTypes(); |
- if (genericIndex == -1) { |
- for (size_t j = 0; j < types.size(); j++) { |
- if (arguments[i]->fType.canCoerceTo(*types[j])) { |
- genericIndex = j; |
- break; |
- } |
- } |
- if (genericIndex == -1) { |
- return false; |
- } |
- } |
- outParameterTypes->push_back(types[genericIndex]); |
- } else { |
- outParameterTypes->push_back(&fParameters[i]->fType); |
- } |
- } |
- if (fReturnType.kind() == Type::kGeneric_Kind) { |
- assert(genericIndex != -1); |
- *outReturnType = fReturnType.coercibleTypes()[genericIndex]; |
- } else { |
- *outReturnType = &fReturnType; |
- } |
- return true; |
- } |
- |
mutable bool fDefined; |
bool fBuiltin; |
const std::vector<const Variable*> fParameters; |