@@ -1749,9 +1749,10 @@ Parser<ManagedTokenSource>::parse_generic_param (EndTokenPred is_end_token)
17491749 auto lifetime = parse_lifetime (false );
17501750 if (!lifetime)
17511751 {
1752- rust_error_at (
1753- token->get_locus (),
1754- " failed to parse lifetime in generic parameter list" );
1752+ Error error (token->get_locus (),
1753+ " failed to parse lifetime in generic parameter list" );
1754+ add_error (std::move (error));
1755+
17551756 return nullptr ;
17561757 }
17571758
@@ -1794,9 +1795,11 @@ Parser<ManagedTokenSource>::parse_generic_param (EndTokenPred is_end_token)
17941795 type = parse_type ();
17951796 if (!type)
17961797 {
1797- rust_error_at (
1798+ Error error (
17981799 lexer.peek_token ()->get_locus (),
17991800 " failed to parse type in type param in generic params" );
1801+ add_error (std::move (error));
1802+
18001803 return nullptr ;
18011804 }
18021805 }
@@ -1830,11 +1833,13 @@ Parser<ManagedTokenSource>::parse_generic_param (EndTokenPred is_end_token)
18301833
18311834 if (!default_expr)
18321835 {
1833- rust_error_at (tok->get_locus (),
1834- " invalid token for start of default value for "
1835- " const generic parameter: expected %<block%>, "
1836- " %<identifier%> or %<literal%>, got %qs" ,
1837- token_id_to_str (tok->get_id ()));
1836+ Error error (tok->get_locus (),
1837+ " invalid token for start of default value for "
1838+ " const generic parameter: expected %<block%>, "
1839+ " %<identifier%> or %<literal%>, got %qs" ,
1840+ token_id_to_str (tok->get_id ()));
1841+
1842+ add_error (std::move (error));
18381843 return nullptr ;
18391844 }
18401845
@@ -1854,9 +1859,11 @@ Parser<ManagedTokenSource>::parse_generic_param (EndTokenPred is_end_token)
18541859 }
18551860 default :
18561861 // FIXME: Can we clean this last call with a method call?
1857- rust_error_at (token->get_locus (),
1858- " unexpected token when parsing generic parameters: %qs" ,
1859- token->as_string ().c_str ());
1862+ Error error (token->get_locus (),
1863+ " unexpected token when parsing generic parameters: %qs" ,
1864+ token->as_string ().c_str ());
1865+ add_error (std::move (error));
1866+
18601867 return nullptr ;
18611868 }
18621869
@@ -5154,8 +5161,9 @@ Parser<ManagedTokenSource>::parse_self_param ()
51545161 break ;
51555162 if (i == s.size ())
51565163 {
5157- rust_error_at (lexer.peek_token ()->get_locus (),
5158- " cannot pass %<self%> by raw pointer" );
5164+ Error error (lexer.peek_token ()->get_locus (),
5165+ " cannot pass %<self%> by raw pointer" );
5166+ add_error (std::move (error));
51595167 return Parse::Error::Self::make_self_raw_pointer ();
51605168 }
51615169 }
@@ -5242,7 +5250,7 @@ Parser<ManagedTokenSource>::parse_self_param ()
52425250 }
52435251
52445252 // ensure that cannot have both type and reference
5245- if (type != nullptr && has_reference)
5253+ if (type && has_reference)
52465254 {
52475255 Error error (
52485256 lexer.peek_token ()->get_locus (),
0 commit comments