1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:27:45 +00:00

LibCpp: Add support for type aliases with typedef/using

This commit is contained in:
Ali Mohammad Pur 2023-06-17 22:41:30 +03:30 committed by Andreas Kling
parent 2e2e535abb
commit 543ccecc0b
4 changed files with 115 additions and 0 deletions

View file

@ -1007,6 +1007,23 @@ public:
}
};
class TypedefDeclaration : public Declaration {
public:
virtual ~TypedefDeclaration() override = default;
virtual StringView class_name() const override { return "TypedefDeclaration"sv; }
virtual void dump(FILE* = stdout, size_t indent = 0) const override;
TypedefDeclaration(ASTNode const* parent, Optional<Position> start, Optional<Position> end, DeprecatedString const& filename)
: Declaration(parent, start, end, filename)
{
}
void set_alias(Type const& alias) { m_alias = alias; }
Type const* alias() const { return m_alias.ptr(); }
private:
RefPtr<Type const> m_alias;
};
template<>
inline bool ASTNode::fast_is<Identifier>() const { return is_identifier(); }
template<>