
Change the way that underline positions are calculated by delaying using the "visual" column position until the last possible moment, instead using the "file"/byte position in the file, and then calculating visual positioning as late as possible. This should make the underlines more resilient to non-1-width unicode chars. Unfortunately, as part of this change (which fixes some visual bugs) comes with the loss of some eager tab codepoint handling, but the output remains legible despite some minor regression on the "margin trimming" logic.
63 lines
7 KiB
Text
63 lines
7 KiB
Text
error[E0369]: cannot add `&str` to `&str`
|
|
╭▸ $DIR/non-1-width-unicode-multiline-label.rs:7:237
|
|
│
|
|
LL │ …👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦"; let _a = unicode_is_fun + " really fun!";
|
|
│ ┬───────────── ┯ ────────────── &str
|
|
│ │ │
|
|
│ │ `+` cannot be used to concatenate two `&str` strings
|
|
│ &str
|
|
│
|
|
╰ note: string concatenation requires an owned `String` on the left
|
|
help: create an owned `String` from a string reference
|
|
╭╴
|
|
LL │ let _ = "👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦"; let _a = unicode_is_fun.to_owned() + " really fun!";
|
|
╰╴ +++++++++++
|
|
|
|
error[E0369]: cannot add `&str` to `&str`
|
|
╭▸ $DIR/non-1-width-unicode-multiline-label.rs:9:384
|
|
│
|
|
LL │ …👨👩👧👦👨👩👧👦👨👩👧👦"; let _a = unicode_is_fun + " really fun!";
|
|
│ ┬───────────── ┯ ────────────── &str
|
|
│ │ │
|
|
│ │ `+` cannot be used to concatenate two `&str` strings
|
|
│ &str
|
|
│
|
|
╰ note: string concatenation requires an owned `String` on the left
|
|
help: create an owned `String` from a string reference
|
|
╭╴
|
|
LL │ let _ = "👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦👨👩👧👦"; let _a = unicode_is_fun.to_owned() + " really fun!";
|
|
╰╴ +++++++++++
|
|
|
|
error[E0369]: cannot add `&str` to `&str`
|
|
╭▸ $DIR/non-1-width-unicode-multiline-label.rs:11:260
|
|
│
|
|
LL │ …࿅࿆࿇࿈࿉࿊࿋࿌࿎࿏࿐࿑࿒࿓࿔࿕࿖࿗࿘࿙࿚"; let _a = unicode_is_fun + " really fun!";
|
|
│ ┬───────────── ┯ ────────────── &str
|
|
│ │ │
|
|
│ │ `+` cannot be used to concatenate two `&str` strings
|
|
│ &str
|
|
│
|
|
╰ note: string concatenation requires an owned `String` on the left
|
|
help: create an owned `String` from a string reference
|
|
╭╴
|
|
LL │ let _ = "ༀ༁༂༃༄༅༆༇༈༉༊་༌།༎༏༐༑༒༓༔༕༖༗༘༙༚༛༜༝༞༟༠༡༢༣༤༥༦༧༨༩༪༫༬༭༮༯༰༱༲༳༴༵༶༷༸༹༺༻༼༽༾༿ཀཁགགྷངཅཆཇཉཊཋཌཌྷཎཏཐདདྷནཔཕབབྷམཙཚཛཛྷཝཞཟའཡརལཤཥསཧཨཀྵཪཫཬཱཱཱིིུུྲྀཷླྀཹེཻོཽཾཿ྄ཱྀྀྂྃ྅྆྇ྈྉྊྋྌྍྎྏྐྑྒྒྷྔྕྖྗྙྚྛྜྜྷྞྟྠྡྡྷྣྤྥྦྦྷྨྩྪྫྫྷྭྮྯྰྱྲླྴྵྶྷྸྐྵྺྻྼ྾྿࿀࿁࿂࿃࿄࿅࿆࿇࿈࿉࿊࿋࿌࿎࿏࿐࿑࿒࿓࿔࿕࿖࿗࿘࿙࿚"; let _a = unicode_is_fun.to_owned() + " really fun!";
|
|
╰╴ +++++++++++
|
|
|
|
error[E0369]: cannot add `&str` to `&str`
|
|
╭▸ $DIR/non-1-width-unicode-multiline-label.rs:13:219
|
|
│
|
|
LL │ …xxxxxxxxxxxxxxxxxxxxxx"; let _a = unicode_is_fun + " really fun!";
|
|
│ ┬───────────── ┯ ────────────── &str
|
|
│ │ │
|
|
│ │ `+` cannot be used to concatenate two `&str` strings
|
|
│ &str
|
|
│
|
|
╰ note: string concatenation requires an owned `String` on the left
|
|
help: create an owned `String` from a string reference
|
|
╭╴
|
|
LL │ let _ = "xxxxxxx👨👩👧👦xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx👨xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; let _a = unicode_is_fun.to_owned() + " really fun!";
|
|
╰╴ +++++++++++
|
|
|
|
error: aborting due to 4 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0369`.
|