/*
 * Copyright 2016 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
 
#ifndef SKSL_TYPEREFERENCE
#define SKSL_TYPEREFERENCE

#include "SkSLContext.h"
#include "SkSLExpression.h"

namespace SkSL {

/**
 * Represents an identifier referring to a type. This is an intermediate value: TypeReferences are 
 * always eventually replaced by Constructors in valid programs.
 */
struct TypeReference : public Expression {
    TypeReference(const Context& context, Position position, const Type& type)
    : INHERITED(position, kTypeReference_Kind, *context.fInvalid_Type)
    , fValue(type) {}

    SkString description() const override {
        return fValue.name();
    }

    const Type& fValue;

    typedef Expression INHERITED;
};

} // namespace

#endif
