Project

General

Profile

Actions

Feature #12016

closed

More informative error message when Symbol encoding is invalid

Added by alexdowad (Alex Dowad) almost 9 years ago. Updated almost 9 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:73398]

Description

When a symbol literal is invalid in the source file's encoding, an EncodingError exception is raised, with the following message: invalid encoding symbol. This patches the interpreter so a more informative message is generated, similar to:
encoding UTF-8 is invalid for symbol :"\xC7".

Here is where this originated from: https://github.com/whitequark/parser/issues/252


Files

patch_symbol_encoding_error_msg.diff (547 Bytes) patch_symbol_encoding_error_msg.diff alexdowad (Alex Dowad), 01/25/2016 06:13 AM
patch_symbol_encoding_error_msg.diff (547 Bytes) patch_symbol_encoding_error_msg.diff Patch which adjusts error message in sym_check_asciionly alexdowad (Alex Dowad), 01/25/2016 06:13 AM

Updated by normalperson (Eric Wong) almost 9 years ago

wrote:

Feature #12016: More informative error message when Symbol encoding is invalid
https://bugs.ruby-lang.org/issues/12016

Calling RSTRING_PTR on any function return value directly is dangerous
because of GC. PRI*VALUE format strings were introduced to help make
avoiding this danger easier, and the '+' modifier will call inspect for
you.

How about the following?

rb_raise(rb_eEncodingError,
	"encoding %s is invalid for symbol :%+"PRIsVALUE,

rb_enc_name(rb_enc_get(str)),
str);

(also wrapping at 80 cols, some of us use big fonts)

Actions #2

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago

  • Status changed from Open to Closed

Applied in changeset r53650.


symbol.c: more informative error message

  • symbol.c (sym_check_asciionly): more informative error message
    with the encoding name and the inspected content.
    [ruby-core:73398] [Feature #12016]
Actions

Also available in: Atom PDF

Like0
Like0Like0