mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 16:47:44 +00:00
Everywhere: Stop using NonnullRefPtrVector
This class had slightly confusing semantics and the added weirdness doesn't seem worth it just so we can say "." instead of "->" when iterating over a vector of NNRPs. This patch replaces NonnullRefPtrVector<T> with Vector<NNRP<T>>.
This commit is contained in:
parent
104be6c8ac
commit
8a48246ed1
168 changed files with 1280 additions and 1280 deletions
|
@ -24,7 +24,7 @@ void TranslationUnit::dump(FILE* output, size_t indent) const
|
|||
{
|
||||
ASTNode::dump(output, indent);
|
||||
for (auto const& child : m_declarations) {
|
||||
child.dump(output, indent + 1);
|
||||
child->dump(output, indent + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ void FunctionDeclaration::dump(FILE* output, size_t indent) const
|
|||
print_indent(output, indent + 1);
|
||||
outln(output, "(");
|
||||
for (auto const& arg : m_parameters) {
|
||||
arg.dump(output, indent + 1);
|
||||
arg->dump(output, indent + 1);
|
||||
}
|
||||
print_indent(output, indent + 1);
|
||||
outln(output, ")");
|
||||
|
@ -55,9 +55,9 @@ void FunctionDeclaration::dump(FILE* output, size_t indent) const
|
|||
}
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> FunctionDeclaration::declarations() const
|
||||
Vector<NonnullRefPtr<Declaration const>> FunctionDeclaration::declarations() const
|
||||
{
|
||||
NonnullRefPtrVector<Declaration const> declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> declarations;
|
||||
for (auto& arg : m_parameters) {
|
||||
declarations.append(arg);
|
||||
}
|
||||
|
@ -124,11 +124,11 @@ DeprecatedString FunctionType::to_deprecated_string() const
|
|||
first = false;
|
||||
else
|
||||
builder.append(", "sv);
|
||||
if (parameter.type())
|
||||
builder.append(parameter.type()->to_deprecated_string());
|
||||
if (parameter.name() && !parameter.full_name().is_empty()) {
|
||||
if (parameter->type())
|
||||
builder.append(parameter->type()->to_deprecated_string());
|
||||
if (parameter->name() && !parameter->full_name().is_empty()) {
|
||||
builder.append(' ');
|
||||
builder.append(parameter.full_name());
|
||||
builder.append(parameter->full_name());
|
||||
}
|
||||
}
|
||||
builder.append(')');
|
||||
|
@ -156,17 +156,17 @@ void FunctionDefinition::dump(FILE* output, size_t indent) const
|
|||
print_indent(output, indent);
|
||||
outln(output, "{{");
|
||||
for (auto const& statement : m_statements) {
|
||||
statement.dump(output, indent + 1);
|
||||
statement->dump(output, indent + 1);
|
||||
}
|
||||
print_indent(output, indent);
|
||||
outln(output, "}}");
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> FunctionDefinition::declarations() const
|
||||
Vector<NonnullRefPtr<Declaration const>> FunctionDefinition::declarations() const
|
||||
{
|
||||
NonnullRefPtrVector<Declaration const> declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> declarations;
|
||||
for (auto& statement : m_statements) {
|
||||
declarations.extend(statement.declarations());
|
||||
declarations.extend(statement->declarations());
|
||||
}
|
||||
return declarations;
|
||||
}
|
||||
|
@ -297,7 +297,7 @@ void FunctionCall::dump(FILE* output, size_t indent) const
|
|||
ASTNode::dump(output, indent);
|
||||
m_callee->dump(output, indent + 1);
|
||||
for (auto const& arg : m_arguments) {
|
||||
arg.dump(output, indent + 1);
|
||||
arg->dump(output, indent + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -338,7 +338,7 @@ void StructOrClassDeclaration::dump(FILE* output, size_t indent) const
|
|||
outln(output, ":");
|
||||
for (size_t i = 0; i < m_baseclasses.size(); ++i) {
|
||||
auto& baseclass = m_baseclasses[i];
|
||||
baseclass.dump(output, indent + 1);
|
||||
baseclass->dump(output, indent + 1);
|
||||
if (i < m_baseclasses.size() - 1) {
|
||||
print_indent(output, indent + 1);
|
||||
outln(output, ",");
|
||||
|
@ -347,12 +347,12 @@ void StructOrClassDeclaration::dump(FILE* output, size_t indent) const
|
|||
}
|
||||
outln(output, "");
|
||||
for (auto& member : m_members) {
|
||||
member.dump(output, indent + 1);
|
||||
member->dump(output, indent + 1);
|
||||
}
|
||||
}
|
||||
NonnullRefPtrVector<Declaration const> StructOrClassDeclaration::declarations() const
|
||||
Vector<NonnullRefPtr<Declaration const>> StructOrClassDeclaration::declarations() const
|
||||
{
|
||||
NonnullRefPtrVector<Declaration const> declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> declarations;
|
||||
for (auto& member : m_members)
|
||||
declarations.append(member);
|
||||
return declarations;
|
||||
|
@ -425,7 +425,7 @@ void FunctionType::dump(FILE* output, size_t indent) const
|
|||
print_indent(output, indent + 1);
|
||||
outln("(");
|
||||
for (auto& parameter : m_parameters)
|
||||
parameter.dump(output, indent + 2);
|
||||
parameter->dump(output, indent + 2);
|
||||
print_indent(output, indent + 1);
|
||||
outln(")");
|
||||
}
|
||||
|
@ -441,7 +441,7 @@ void BlockStatement::dump(FILE* output, size_t indent) const
|
|||
{
|
||||
ASTNode::dump(output, indent);
|
||||
for (auto& statement : m_statements) {
|
||||
statement.dump(output, indent + 1);
|
||||
statement->dump(output, indent + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -458,10 +458,10 @@ void ForStatement::dump(FILE* output, size_t indent) const
|
|||
m_body->dump(output, indent + 1);
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> Statement::declarations() const
|
||||
Vector<NonnullRefPtr<Declaration const>> Statement::declarations() const
|
||||
{
|
||||
if (is_declaration()) {
|
||||
NonnullRefPtrVector<Declaration const> vec;
|
||||
Vector<NonnullRefPtr<Declaration const>> vec;
|
||||
auto const& decl = static_cast<Declaration const&>(*this);
|
||||
vec.empend(const_cast<Declaration&>(decl));
|
||||
return vec;
|
||||
|
@ -469,9 +469,9 @@ NonnullRefPtrVector<Declaration const> Statement::declarations() const
|
|||
return {};
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> ForStatement::declarations() const
|
||||
Vector<NonnullRefPtr<Declaration const>> ForStatement::declarations() const
|
||||
{
|
||||
NonnullRefPtrVector<Declaration const> declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> declarations;
|
||||
if (m_init)
|
||||
declarations.extend(m_init->declarations());
|
||||
if (m_body)
|
||||
|
@ -479,11 +479,11 @@ NonnullRefPtrVector<Declaration const> ForStatement::declarations() const
|
|||
return declarations;
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> BlockStatement::declarations() const
|
||||
Vector<NonnullRefPtr<Declaration const>> BlockStatement::declarations() const
|
||||
{
|
||||
NonnullRefPtrVector<Declaration const> declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> declarations;
|
||||
for (auto& statement : m_statements) {
|
||||
declarations.extend(statement.declarations());
|
||||
declarations.extend(statement->declarations());
|
||||
}
|
||||
return declarations;
|
||||
}
|
||||
|
@ -508,9 +508,9 @@ void IfStatement::dump(FILE* output, size_t indent) const
|
|||
}
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> IfStatement::declarations() const
|
||||
Vector<NonnullRefPtr<Declaration const>> IfStatement::declarations() const
|
||||
{
|
||||
NonnullRefPtrVector<Declaration const> declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> declarations;
|
||||
if (m_predicate)
|
||||
declarations.extend(m_predicate->declarations());
|
||||
if (m_then)
|
||||
|
@ -526,7 +526,7 @@ void NamespaceDeclaration::dump(FILE* output, size_t indent) const
|
|||
print_indent(output, indent + 1);
|
||||
outln(output, "{}", full_name());
|
||||
for (auto& decl : m_declarations)
|
||||
decl.dump(output, indent + 1);
|
||||
decl->dump(output, indent + 1);
|
||||
}
|
||||
|
||||
void NullPointerLiteral::dump(FILE* output, size_t indent) const
|
||||
|
@ -549,7 +549,7 @@ StringView Name::full_name() const
|
|||
StringBuilder builder;
|
||||
if (!m_scope.is_empty()) {
|
||||
for (auto& scope : m_scope) {
|
||||
builder.appendff("{}::", scope.name());
|
||||
builder.appendff("{}::", scope->name());
|
||||
}
|
||||
}
|
||||
m_full_name = DeprecatedString::formatted("{}{}", builder.to_deprecated_string(), m_name.is_null() ? ""sv : m_name->name());
|
||||
|
@ -565,7 +565,7 @@ StringView TemplatizedName::full_name() const
|
|||
name.append(Name::full_name());
|
||||
name.append('<');
|
||||
for (auto& type : m_template_arguments) {
|
||||
name.append(type.to_deprecated_string());
|
||||
name.append(type->to_deprecated_string());
|
||||
}
|
||||
name.append('>');
|
||||
m_full_name = name.to_deprecated_string();
|
||||
|
@ -601,7 +601,7 @@ void BracedInitList::dump(FILE* output, size_t indent) const
|
|||
{
|
||||
ASTNode::dump(output, indent);
|
||||
for (auto& exp : m_expressions) {
|
||||
exp.dump(output, indent + 1);
|
||||
exp->dump(output, indent + 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -621,7 +621,7 @@ void Constructor::dump(FILE* output, size_t indent) const
|
|||
print_indent(output, indent + 1);
|
||||
outln(output, "(");
|
||||
for (auto const& arg : parameters()) {
|
||||
arg.dump(output, indent + 1);
|
||||
arg->dump(output, indent + 1);
|
||||
}
|
||||
print_indent(output, indent + 1);
|
||||
outln(output, ")");
|
||||
|
@ -637,7 +637,7 @@ void Destructor::dump(FILE* output, size_t indent) const
|
|||
print_indent(output, indent + 1);
|
||||
outln(output, "(");
|
||||
for (auto const& arg : parameters()) {
|
||||
arg.dump(output, indent + 1);
|
||||
arg->dump(output, indent + 1);
|
||||
}
|
||||
print_indent(output, indent + 1);
|
||||
outln(output, ")");
|
||||
|
|
|
@ -54,7 +54,7 @@ public:
|
|||
void set_end(Position const& end) { m_end = end; }
|
||||
void set_parent(ASTNode const& parent) { m_parent = &parent; }
|
||||
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const { return {}; }
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const { return {}; }
|
||||
|
||||
virtual bool is_identifier() const { return false; }
|
||||
virtual bool is_member_expression() const { return false; }
|
||||
|
@ -87,17 +87,17 @@ public:
|
|||
virtual ~TranslationUnit() override = default;
|
||||
virtual StringView class_name() const override { return "TranslationUnit"sv; }
|
||||
virtual void dump(FILE* = stdout, size_t indent = 0) const override;
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override { return m_declarations; }
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override { return m_declarations; }
|
||||
|
||||
TranslationUnit(ASTNode const* parent, Optional<Position> start, Optional<Position> end, DeprecatedString const& filename)
|
||||
: ASTNode(parent, start, end, filename)
|
||||
{
|
||||
}
|
||||
|
||||
void set_declarations(NonnullRefPtrVector<Declaration const>&& declarations) { m_declarations = move(declarations); }
|
||||
void set_declarations(Vector<NonnullRefPtr<Declaration const>>&& declarations) { m_declarations = move(declarations); }
|
||||
|
||||
private:
|
||||
NonnullRefPtrVector<Declaration const> m_declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> m_declarations;
|
||||
};
|
||||
|
||||
class Statement : public ASTNode {
|
||||
|
@ -105,7 +105,7 @@ public:
|
|||
virtual ~Statement() override = default;
|
||||
virtual StringView class_name() const override { return "Statement"sv; }
|
||||
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override;
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override;
|
||||
|
||||
protected:
|
||||
Statement(ASTNode const* parent, Optional<Position> start, Optional<Position> end, DeprecatedString const& filename)
|
||||
|
@ -167,20 +167,20 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override;
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override;
|
||||
Vector<StringView> const& qualifiers() const { return m_qualifiers; }
|
||||
void set_qualifiers(Vector<StringView> const& qualifiers) { m_qualifiers = qualifiers; }
|
||||
Type const* return_type() const { return m_return_type.ptr(); }
|
||||
void set_return_type(RefPtr<Type const> const& return_type) { m_return_type = return_type; }
|
||||
NonnullRefPtrVector<Parameter const> const& parameters() const { return m_parameters; }
|
||||
void set_parameters(NonnullRefPtrVector<Parameter const> const& parameters) { m_parameters = parameters; }
|
||||
Vector<NonnullRefPtr<Parameter const>> const& parameters() const { return m_parameters; }
|
||||
void set_parameters(Vector<NonnullRefPtr<Parameter const>> const& parameters) { m_parameters = parameters; }
|
||||
FunctionDefinition const* definition() const { return m_definition.ptr(); }
|
||||
void set_definition(RefPtr<FunctionDefinition const>&& definition) { m_definition = move(definition); }
|
||||
|
||||
private:
|
||||
Vector<StringView> m_qualifiers;
|
||||
RefPtr<Type const> m_return_type;
|
||||
NonnullRefPtrVector<Parameter const> m_parameters;
|
||||
Vector<NonnullRefPtr<Parameter const>> m_parameters;
|
||||
RefPtr<FunctionDefinition const> m_definition;
|
||||
};
|
||||
|
||||
|
@ -325,11 +325,11 @@ public:
|
|||
}
|
||||
|
||||
void set_return_type(Type& type) { m_return_type = type; }
|
||||
void set_parameters(NonnullRefPtrVector<Parameter const> parameters) { m_parameters = move(parameters); }
|
||||
void set_parameters(Vector<NonnullRefPtr<Parameter const>> parameters) { m_parameters = move(parameters); }
|
||||
|
||||
private:
|
||||
RefPtr<Type const> m_return_type;
|
||||
NonnullRefPtrVector<Parameter const> m_parameters;
|
||||
Vector<NonnullRefPtr<Parameter const>> m_parameters;
|
||||
};
|
||||
|
||||
class FunctionDefinition : public ASTNode {
|
||||
|
@ -343,12 +343,12 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override;
|
||||
NonnullRefPtrVector<Statement const> const& statements() { return m_statements; }
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override;
|
||||
Vector<NonnullRefPtr<Statement const>> const& statements() { return m_statements; }
|
||||
void add_statement(NonnullRefPtr<Statement const>&& statement) { m_statements.append(move(statement)); }
|
||||
|
||||
private:
|
||||
NonnullRefPtrVector<Statement const> m_statements;
|
||||
Vector<NonnullRefPtr<Statement const>> m_statements;
|
||||
};
|
||||
|
||||
class InvalidStatement : public Statement {
|
||||
|
@ -444,13 +444,13 @@ public:
|
|||
|
||||
Identifier const* name() const { return m_name.ptr(); }
|
||||
void set_name(RefPtr<Identifier const>&& name) { m_name = move(name); }
|
||||
NonnullRefPtrVector<Identifier const> const& scope() const { return m_scope; }
|
||||
void set_scope(NonnullRefPtrVector<Identifier const> scope) { m_scope = move(scope); }
|
||||
Vector<NonnullRefPtr<Identifier const>> const& scope() const { return m_scope; }
|
||||
void set_scope(Vector<NonnullRefPtr<Identifier const>> scope) { m_scope = move(scope); }
|
||||
void add_to_scope(NonnullRefPtr<Identifier const>&& part) { m_scope.append(move(part)); }
|
||||
|
||||
private:
|
||||
RefPtr<Identifier const> m_name;
|
||||
NonnullRefPtrVector<Identifier const> m_scope;
|
||||
Vector<NonnullRefPtr<Identifier const>> m_scope;
|
||||
mutable Optional<DeprecatedString> m_full_name;
|
||||
};
|
||||
|
||||
|
@ -469,7 +469,7 @@ public:
|
|||
void add_template_argument(NonnullRefPtr<Type const>&& type) { m_template_arguments.append(move(type)); }
|
||||
|
||||
private:
|
||||
NonnullRefPtrVector<Type const> m_template_arguments;
|
||||
Vector<NonnullRefPtr<Type const>> m_template_arguments;
|
||||
mutable Optional<DeprecatedString> m_full_name;
|
||||
};
|
||||
|
||||
|
@ -609,11 +609,11 @@ public:
|
|||
void set_callee(RefPtr<Expression const>&& callee) { m_callee = move(callee); }
|
||||
|
||||
void add_argument(NonnullRefPtr<Expression const>&& arg) { m_arguments.append(move(arg)); }
|
||||
NonnullRefPtrVector<Expression const> const& arguments() const { return m_arguments; }
|
||||
Vector<NonnullRefPtr<Expression const>> const& arguments() const { return m_arguments; }
|
||||
|
||||
private:
|
||||
RefPtr<Expression const> m_callee;
|
||||
NonnullRefPtrVector<Expression const> m_arguments;
|
||||
Vector<NonnullRefPtr<Expression const>> m_arguments;
|
||||
};
|
||||
|
||||
class StringLiteral final : public Expression {
|
||||
|
@ -689,7 +689,7 @@ public:
|
|||
virtual bool is_struct_or_class() const override { return true; }
|
||||
virtual bool is_struct() const override { return m_type == Type::Struct; }
|
||||
virtual bool is_class() const override { return m_type == Type::Class; }
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override;
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override;
|
||||
|
||||
enum class Type {
|
||||
Struct,
|
||||
|
@ -702,16 +702,16 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> const& members() const { return m_members; }
|
||||
void set_members(NonnullRefPtrVector<Declaration const>&& members) { m_members = move(members); }
|
||||
Vector<NonnullRefPtr<Declaration const>> const& members() const { return m_members; }
|
||||
void set_members(Vector<NonnullRefPtr<Declaration const>>&& members) { m_members = move(members); }
|
||||
|
||||
NonnullRefPtrVector<Name const> const& baseclasses() const { return m_baseclasses; }
|
||||
void set_baseclasses(NonnullRefPtrVector<Name const>&& baseclasses) { m_baseclasses = move(baseclasses); }
|
||||
Vector<NonnullRefPtr<Name const>> const& baseclasses() const { return m_baseclasses; }
|
||||
void set_baseclasses(Vector<NonnullRefPtr<Name const>>&& baseclasses) { m_baseclasses = move(baseclasses); }
|
||||
|
||||
private:
|
||||
StructOrClassDeclaration::Type m_type;
|
||||
NonnullRefPtrVector<Declaration const> m_members;
|
||||
NonnullRefPtrVector<Name const> m_baseclasses;
|
||||
Vector<NonnullRefPtr<Declaration const>> m_members;
|
||||
Vector<NonnullRefPtr<Name const>> m_baseclasses;
|
||||
};
|
||||
|
||||
enum class UnaryOp {
|
||||
|
@ -776,7 +776,7 @@ public:
|
|||
virtual StringView class_name() const override { return "ForStatement"sv; }
|
||||
virtual void dump(FILE* = stdout, size_t indent = 0) const override;
|
||||
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override;
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override;
|
||||
|
||||
void set_init(RefPtr<VariableDeclaration const>&& init) { m_init = move(init); }
|
||||
void set_test(RefPtr<Expression const>&& test) { m_test = move(test); }
|
||||
|
@ -802,12 +802,12 @@ public:
|
|||
virtual StringView class_name() const override { return "BlockStatement"sv; }
|
||||
virtual void dump(FILE* = stdout, size_t indent = 0) const override;
|
||||
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override;
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override;
|
||||
|
||||
void add_statement(NonnullRefPtr<Statement const>&& statement) { m_statements.append(move(statement)); }
|
||||
|
||||
private:
|
||||
NonnullRefPtrVector<Statement const> m_statements;
|
||||
Vector<NonnullRefPtr<Statement const>> m_statements;
|
||||
};
|
||||
|
||||
class Comment final : public Statement {
|
||||
|
@ -831,7 +831,7 @@ public:
|
|||
virtual ~IfStatement() override = default;
|
||||
virtual StringView class_name() const override { return "IfStatement"sv; }
|
||||
virtual void dump(FILE* = stdout, size_t indent = 0) const override;
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override;
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override;
|
||||
|
||||
void set_predicate(RefPtr<Expression const>&& predicate) { m_predicate = move(predicate); }
|
||||
void set_then_statement(RefPtr<Statement const>&& then) { m_then = move(then); }
|
||||
|
@ -858,11 +858,11 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual NonnullRefPtrVector<Declaration const> declarations() const override { return m_declarations; }
|
||||
virtual Vector<NonnullRefPtr<Declaration const>> declarations() const override { return m_declarations; }
|
||||
void add_declaration(NonnullRefPtr<Declaration const>&& declaration) { m_declarations.append(move(declaration)); }
|
||||
|
||||
private:
|
||||
NonnullRefPtrVector<Declaration const> m_declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> m_declarations;
|
||||
};
|
||||
|
||||
class CppCastExpression : public Expression {
|
||||
|
@ -936,7 +936,7 @@ public:
|
|||
void add_expression(NonnullRefPtr<Expression const>&& exp) { m_expressions.append(move(exp)); }
|
||||
|
||||
private:
|
||||
NonnullRefPtrVector<Expression const> m_expressions;
|
||||
Vector<NonnullRefPtr<Expression const>> m_expressions;
|
||||
};
|
||||
|
||||
class DummyAstNode : public ASTNode {
|
||||
|
|
|
@ -37,9 +37,9 @@ NonnullRefPtr<TranslationUnit> Parser::parse()
|
|||
return unit;
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Declaration const> Parser::parse_declarations_in_translation_unit(ASTNode const& parent)
|
||||
Vector<NonnullRefPtr<Declaration const>> Parser::parse_declarations_in_translation_unit(ASTNode const& parent)
|
||||
{
|
||||
NonnullRefPtrVector<Declaration const> declarations;
|
||||
Vector<NonnullRefPtr<Declaration const>> declarations;
|
||||
while (!eof()) {
|
||||
auto declaration = parse_single_declaration_in_translation_unit(parent);
|
||||
if (declaration) {
|
||||
|
@ -259,13 +259,13 @@ bool Parser::match_template_arguments()
|
|||
return peek().type() == Token::Type::Greater;
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Type const> Parser::parse_template_arguments(ASTNode const& parent)
|
||||
Vector<NonnullRefPtr<Type const>> Parser::parse_template_arguments(ASTNode const& parent)
|
||||
{
|
||||
LOG_SCOPE();
|
||||
|
||||
consume(Token::Type::Less);
|
||||
|
||||
NonnullRefPtrVector<Type const> template_arguments;
|
||||
Vector<NonnullRefPtr<Type const>> template_arguments;
|
||||
while (!eof() && peek().type() != Token::Type::Greater) {
|
||||
template_arguments.append(parse_type(parent));
|
||||
}
|
||||
|
@ -350,7 +350,7 @@ NonnullRefPtr<Expression const> Parser::parse_expression(ASTNode const& parent)
|
|||
return expression;
|
||||
}
|
||||
|
||||
NonnullRefPtrVector<Expression const> secondary_expressions;
|
||||
Vector<NonnullRefPtr<Expression const>> secondary_expressions;
|
||||
|
||||
while (match_secondary_expression()) {
|
||||
// FIXME: Handle operator precedence
|
||||
|
@ -359,7 +359,7 @@ NonnullRefPtr<Expression const> Parser::parse_expression(ASTNode const& parent)
|
|||
}
|
||||
|
||||
for (size_t i = 0; secondary_expressions.size() != 0 && i < secondary_expressions.size() - 1; ++i) {
|
||||
const_cast<Expression&>(secondary_expressions[i]).set_parent(secondary_expressions[i + 1]);
|
||||
const_cast<Expression&>(*secondary_expressions[i]).set_parent(secondary_expressions[i + 1]);
|
||||
}
|
||||
|
||||
return expression;
|
||||
|
@ -748,10 +748,10 @@ bool Parser::match_function_declaration()
|
|||
return false;
|
||||
}
|
||||
|
||||
Optional<NonnullRefPtrVector<Parameter const>> Parser::parse_parameter_list(ASTNode const& parent)
|
||||
Optional<Vector<NonnullRefPtr<Parameter const>>> Parser::parse_parameter_list(ASTNode const& parent)
|
||||
{
|
||||
LOG_SCOPE();
|
||||
NonnullRefPtrVector<Parameter const> parameters;
|
||||
Vector<NonnullRefPtr<Parameter const>> parameters;
|
||||
while (peek().type() != Token::Type::RightParen && !eof()) {
|
||||
if (match_ellipsis()) {
|
||||
auto param = create_ast_node<Parameter>(parent, position(), {}, RefPtr<Name> {});
|
||||
|
@ -981,7 +981,7 @@ Optional<size_t> Parser::index_of_node_at(Position pos) const
|
|||
|
||||
for (size_t node_index = 0; node_index < m_nodes.size(); ++node_index) {
|
||||
auto& node = m_nodes[node_index];
|
||||
if (node.start() > pos || node.end() < pos)
|
||||
if (node->start() > pos || node->end() < pos)
|
||||
continue;
|
||||
|
||||
if (!match_node_index.has_value() || (node_span(node) <= node_span(m_nodes[match_node_index.value()])))
|
||||
|
@ -1155,7 +1155,7 @@ NonnullRefPtr<StructOrClassDeclaration const> Parser::parse_class_declaration(AS
|
|||
|
||||
auto has_final = match_keyword("final");
|
||||
|
||||
NonnullRefPtrVector<Name const> baseclasses;
|
||||
Vector<NonnullRefPtr<Name const>> baseclasses;
|
||||
|
||||
// FIXME: Don't ignore this.
|
||||
if (peek(has_final ? 1 : 0).type() == Token::Type::Colon) {
|
||||
|
@ -1569,11 +1569,11 @@ NonnullRefPtr<BracedInitList const> Parser::parse_braced_init_list(ASTNode const
|
|||
init_list->set_end(position());
|
||||
return init_list;
|
||||
}
|
||||
NonnullRefPtrVector<Declaration const> Parser::parse_class_members(StructOrClassDeclaration& parent)
|
||||
Vector<NonnullRefPtr<Declaration const>> Parser::parse_class_members(StructOrClassDeclaration& parent)
|
||||
{
|
||||
auto class_name = parent.full_name();
|
||||
|
||||
NonnullRefPtrVector<Declaration const> members;
|
||||
Vector<NonnullRefPtr<Declaration const>> members;
|
||||
while (!eof() && peek().type() != Token::Type::RightCurly) {
|
||||
if (match_access_specifier())
|
||||
consume_access_specifier(); // FIXME: Do not ignore access specifiers
|
||||
|
|
|
@ -83,7 +83,7 @@ private:
|
|||
bool match_destructor(StringView class_name);
|
||||
bool match_using_namespace_declaration();
|
||||
|
||||
Optional<NonnullRefPtrVector<Parameter const>> parse_parameter_list(ASTNode const& parent);
|
||||
Optional<Vector<NonnullRefPtr<Parameter const>>> parse_parameter_list(ASTNode const& parent);
|
||||
Optional<Token> consume_whitespace();
|
||||
void consume_preprocessor();
|
||||
|
||||
|
@ -110,15 +110,15 @@ private:
|
|||
NonnullRefPtr<Comment const> parse_comment(ASTNode const& parent);
|
||||
NonnullRefPtr<IfStatement const> parse_if_statement(ASTNode const& parent);
|
||||
NonnullRefPtr<NamespaceDeclaration const> parse_namespace_declaration(ASTNode const& parent, bool is_nested_namespace = false);
|
||||
NonnullRefPtrVector<Declaration const> parse_declarations_in_translation_unit(ASTNode const& parent);
|
||||
Vector<NonnullRefPtr<Declaration const>> parse_declarations_in_translation_unit(ASTNode const& parent);
|
||||
RefPtr<Declaration const> parse_single_declaration_in_translation_unit(ASTNode const& parent);
|
||||
NonnullRefPtrVector<Type const> parse_template_arguments(ASTNode const& parent);
|
||||
Vector<NonnullRefPtr<Type const>> parse_template_arguments(ASTNode const& parent);
|
||||
NonnullRefPtr<Name const> parse_name(ASTNode const& parent);
|
||||
NonnullRefPtr<CppCastExpression const> parse_cpp_cast_expression(ASTNode const& parent);
|
||||
NonnullRefPtr<SizeofExpression const> parse_sizeof_expression(ASTNode const& parent);
|
||||
NonnullRefPtr<BracedInitList const> parse_braced_init_list(ASTNode const& parent);
|
||||
NonnullRefPtr<CStyleCastExpression const> parse_c_style_cast_expression(ASTNode const& parent);
|
||||
NonnullRefPtrVector<Declaration const> parse_class_members(StructOrClassDeclaration& parent);
|
||||
Vector<NonnullRefPtr<Declaration const>> parse_class_members(StructOrClassDeclaration& parent);
|
||||
NonnullRefPtr<Constructor const> parse_constructor(ASTNode const& parent);
|
||||
NonnullRefPtr<Destructor const> parse_destructor(ASTNode const& parent);
|
||||
NonnullRefPtr<UsingNamespaceDeclaration const> parse_using_namespace_declaration(ASTNode const& parent);
|
||||
|
@ -138,7 +138,7 @@ private:
|
|||
|
||||
struct State {
|
||||
size_t token_index { 0 };
|
||||
NonnullRefPtrVector<ASTNode> state_nodes;
|
||||
Vector<NonnullRefPtr<ASTNode>> state_nodes;
|
||||
};
|
||||
|
||||
void error(StringView message = {});
|
||||
|
@ -192,7 +192,7 @@ private:
|
|||
Vector<State> m_saved_states;
|
||||
RefPtr<TranslationUnit> m_root_node;
|
||||
Vector<DeprecatedString> m_errors;
|
||||
NonnullRefPtrVector<ASTNode> m_nodes;
|
||||
Vector<NonnullRefPtr<ASTNode>> m_nodes;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue