diff options
Diffstat (limited to 'src/sksl/ir/SkSLTypeReference.h')
-rw-r--r-- | src/sksl/ir/SkSLTypeReference.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/sksl/ir/SkSLTypeReference.h b/src/sksl/ir/SkSLTypeReference.h index f7065b7c3f..df3dc15abd 100644 --- a/src/sksl/ir/SkSLTypeReference.h +++ b/src/sksl/ir/SkSLTypeReference.h @@ -18,9 +18,9 @@ namespace SkSL { * always eventually replaced by Constructors in valid programs. */ struct TypeReference : public Expression { - TypeReference(const Context& context, int offset, const Type& type) + TypeReference(const Context& context, int offset, const Type& value) : INHERITED(offset, kTypeReference_Kind, *context.fInvalid_Type) - , fValue(type) {} + , fValue(value) {} bool hasSideEffects() const override { return false; @@ -30,9 +30,18 @@ struct TypeReference : public Expression { return String(fValue.fName); } + std::unique_ptr<Expression> clone() const override { + return std::unique_ptr<Expression>(new TypeReference(fOffset, fValue, &fType)); + } + const Type& fValue; typedef Expression INHERITED; + +private: + TypeReference(int offset, const Type& value, const Type* type) + : INHERITED(offset, kTypeReference_Kind, *type) + , fValue(value) {} }; } // namespace |