Skip to content

Compiler panic when string literal contains emoji followed by a quote #44078

Closed
@Alvenix

Description

@Alvenix

When I try to compile the following incorrect code:

fn main() {
    println!("💞"");
}

This happen:

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

thread 'rustc' panicked at 'byte index 16 is not a char boundary; it is inside '💞' (bytes 14..18) of `    println!("💞"");`', src/libcore/str/mod.rs:2161
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Version information:

rustc --version --verbose
rustc 1.19.0 (0ade339 2017-07-17)
binary: rustc
commit-hash: 0ade339
commit-date: 2017-07-17
host: x86_64-apple-darwin
release: 1.19.0
LLVM version: 4.0

Backtrace:

stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
   1: std::panicking::default_hook::{{closure}}
   2: std::panicking::default_hook
   3: std::panicking::rust_panic_with_hook
   4: std::panicking::begin_panic
   5: std::panicking::begin_panic_fmt
   6: rust_begin_unwind
   7: core::panicking::panic_fmt
   8: core::str::slice_error_fail
   9: rustc_errors::emitter::EmitterWriter::emit_message_default
  10: <rustc_errors::emitter::EmitterWriter as rustc_errors::emitter::Emitter>::emit
  11: rustc_errors::Handler::emit
  12: rustc_errors::Handler::span_fatal
  13: syntax::parse::lexer::StringReader::fatal_span_
  14: syntax::parse::lexer::StringReader::next_token_inner
  15: syntax::parse::lexer::StringReader::advance_token
  16: syntax::parse::lexer::StringReader::try_next_token
  17: syntax::parse::lexer::StringReader::real_token
  18: syntax::parse::lexer::tokentrees::<impl syntax::parse::lexer::StringReader<'a>>::parse_token_tree
  19: syntax::parse::lexer::tokentrees::<impl syntax::parse::lexer::StringReader<'a>>::parse_token_tree
  20: syntax::parse::lexer::tokentrees::<impl syntax::parse::lexer::StringReader<'a>>::parse_all_token_trees
  21: syntax::parse::filemap_to_stream
  22: syntax::parse::filemap_to_parser
  23: syntax::parse::parse_crate_from_file
  24: rustc_driver::driver::phase_1_parse_input::{{closure}}
  25: rustc_driver::driver::phase_1_parse_input
  26: rustc_driver::driver::compile_input
  27: rustc_driver::run_compiler

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lintsC-bugCategory: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions