49 static_assert((
int)Kind::kConstructorArray - 1 == (
int)Kind::kChildCall);
51 return this->
kind() >= Kind::kConstructorArray && this->
kind() <= Kind::kConstructorStruct;
virtual ComparisonResult compareConstant(const Expression &other) const
std::unique_ptr< Expression > clone() const
virtual bool supportsConstantValues() const
bool isIntLiteral() const
bool isIncomplete(const Context &context) const
Expression(Position pos, Kind kind, const Type *type)
virtual std::unique_ptr< Expression > clone(Position pos) const =0
CoercionCost coercionCost(const Type &target) const
const Type & type() const
bool isBoolLiteral() const
virtual std::optional< double > getConstantValue(int n) const
bool isFloatLiteral() const
std::string description() const final
AnyConstructor & asAnyConstructor()
bool isAnyConstructor() const
CoercionCost coercionCost(const Type &other) const