зеркало из https://github.com/github/ruby.git
deprecate exposed internal functions
* error.c (rb_compile_error_with_enc, rb_compile_error), (rb_compile_bug): deprecate internal functions. * parse.y (parser_yyerror): construct exception message with source code and carret. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
26984290eb
Коммит
94090b0502
|
@ -1,3 +1,11 @@
|
|||
Thu Dec 24 18:43:19 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* error.c (rb_compile_error_with_enc, rb_compile_error),
|
||||
(rb_compile_bug): deprecate internal functions.
|
||||
|
||||
* parse.y (parser_yyerror): construct exception message with
|
||||
source code and carret.
|
||||
|
||||
Thu Dec 24 17:25:42 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* compile.c (append_compile_error), parse.y (compile_error):
|
||||
|
|
4
NEWS
4
NEWS
|
@ -338,6 +338,10 @@ with all sufficient information, see the ChangeLog file or Redmine
|
|||
|
||||
* rb_autoload() deprecated, use rb_funcall() instead. [Feature #11664]
|
||||
|
||||
* rb_compile_error_with_enc(), rb_compile_error(), and rb_compile_bug()
|
||||
deprecated. these functions are exposed but only for internal use.
|
||||
external libraries should not use them.
|
||||
|
||||
=== Supported platform changes
|
||||
|
||||
* OS/2 is no longer supported
|
||||
|
|
4
error.c
4
error.c
|
@ -127,6 +127,7 @@ compile_err_append(VALUE mesg)
|
|||
th->base_block = prev_base_block;
|
||||
}
|
||||
|
||||
#if 0
|
||||
void
|
||||
rb_compile_error_with_enc(const char *file, int line, void *enc, const char *fmt, ...)
|
||||
{
|
||||
|
@ -150,6 +151,7 @@ rb_compile_error(const char *file, int line, const char *fmt, ...)
|
|||
va_end(args);
|
||||
compile_err_append(str);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
rb_compile_error_str(VALUE file, int line, void *enc, const char *fmt, ...)
|
||||
|
@ -483,6 +485,7 @@ rb_async_bug_errno(const char *mesg, int errno_arg)
|
|||
abort();
|
||||
}
|
||||
|
||||
#if 0
|
||||
void
|
||||
rb_compile_bug(const char *file, int line, const char *fmt, ...)
|
||||
{
|
||||
|
@ -490,6 +493,7 @@ rb_compile_bug(const char *file, int line, const char *fmt, ...)
|
|||
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
rb_compile_bug_str(VALUE file, int line, const char *fmt, ...)
|
||||
|
|
|
@ -253,9 +253,9 @@ PRINTF_ARGS(NORETURN(void rb_loaderror_with_path(VALUE path, const char*, ...)),
|
|||
PRINTF_ARGS(NORETURN(void rb_name_error(ID, const char*, ...)), 2, 3);
|
||||
PRINTF_ARGS(NORETURN(void rb_name_error_str(VALUE, const char*, ...)), 2, 3);
|
||||
NORETURN(void rb_invalid_str(const char*, const char*));
|
||||
PRINTF_ARGS(void rb_compile_error(const char*, int, const char*, ...), 3, 4);
|
||||
PRINTF_ARGS(void rb_compile_error_with_enc(const char*, int, void *, const char*, ...), 4, 5);
|
||||
PRINTF_ARGS(void rb_compile_error_append(const char*, ...), 1, 2);
|
||||
DEPRECATED(PRINTF_ARGS(void rb_compile_error(const char*, int, const char*, ...), 3, 4));
|
||||
DEPRECATED(PRINTF_ARGS(void rb_compile_error_with_enc(const char*, int, void *, const char*, ...), 4, 5));
|
||||
DEPRECATED(PRINTF_ARGS(void rb_compile_error_append(const char*, ...), 1, 2));
|
||||
NORETURN(void rb_error_frozen(const char*));
|
||||
NORETURN(void rb_error_frozen_object(VALUE));
|
||||
void rb_error_untrusted(VALUE);
|
||||
|
|
32
parse.y
32
parse.y
|
@ -5409,11 +5409,12 @@ parser_yyerror(struct parser_params *parser, const char *msg)
|
|||
#ifndef RIPPER
|
||||
const int max_line_margin = 30;
|
||||
const char *p, *pe;
|
||||
const char *pre = "", *post = "";
|
||||
const char *code = "", *carret = "", *newline = "";
|
||||
char *buf;
|
||||
long len;
|
||||
int i;
|
||||
|
||||
compile_error(PARSER_ARG "%s", msg);
|
||||
p = lex_p;
|
||||
while (lex_pbeg <= p) {
|
||||
if (*p == '\n') break;
|
||||
|
@ -5430,7 +5431,6 @@ parser_yyerror(struct parser_params *parser, const char *msg)
|
|||
len = pe - p;
|
||||
if (len > 4) {
|
||||
char *p2;
|
||||
const char *pre = "", *post = "";
|
||||
|
||||
if (len > max_line_margin * 2 + 10) {
|
||||
if (lex_p - p > max_line_margin) {
|
||||
|
@ -5443,22 +5443,24 @@ parser_yyerror(struct parser_params *parser, const char *msg)
|
|||
}
|
||||
len = pe - p;
|
||||
}
|
||||
buf = ALLOCA_N(char, len+2);
|
||||
MEMCPY(buf, p, char, len);
|
||||
buf[len] = '\0';
|
||||
rb_compile_error_with_enc(NULL, 0, (void *)current_enc, "%s%s%s", pre, buf, post);
|
||||
|
||||
i = (int)(lex_p - p);
|
||||
p2 = buf; pe = buf + len;
|
||||
|
||||
while (p2 < pe) {
|
||||
if (*p2 != '\t') *p2 = ' ';
|
||||
p2++;
|
||||
buf = ALLOCA_N(char, i+2);
|
||||
code = p;
|
||||
carret = p2 = buf;
|
||||
while (i-- > 0) {
|
||||
*p2++ = *p++ == '\t' ? '\t' : ' ';
|
||||
}
|
||||
buf[i] = '^';
|
||||
buf[i+1] = '\0';
|
||||
rb_compile_error_append("%s%s", pre, buf);
|
||||
*p2++ = '^';
|
||||
*p2 = '\0';
|
||||
newline = "\n";
|
||||
}
|
||||
else {
|
||||
len = 0;
|
||||
}
|
||||
compile_error(PARSER_ARG "%s%s""%s%.*s%s%s""%s%s",
|
||||
msg, newline,
|
||||
pre, (int)len, code, post, newline,
|
||||
pre, carret);
|
||||
#else
|
||||
dispatch1(parse_error, STR_NEW2(msg));
|
||||
ripper_error();
|
||||
|
|
Загрузка…
Ссылка в новой задаче