/* * Copyright 2021 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SKSL_METHODREFERENCE #define SKSL_METHODREFERENCE #include "src/sksl/SkSLBuiltinTypes.h" #include "src/sksl/SkSLContext.h" #include "src/sksl/ir/SkSLExpression.h" namespace SkSL { class FunctionDeclaration; /** * An identifier referring to a method name, along with an instance for the call. * This is an intermediate value: MethodReferences are always eventually replaced by FunctionCalls * in valid programs. * * Method calls are only supported on effect-child types, and they all resolve to intrinsics * prefixed with '$', and taking the 'self' object as the last parameter. For example: * * uniform shader child; * ... * child.eval(xy) --> $eval(xy, child) */ class MethodReference final : public Expression { … }; } // namespace SkSL #endif