You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some of the error messages from e.g. typeck get significant worse when reported from the depths of desugared code rather than from the high level syntax.
For example: this:
staticSTATIC11:Box<MyOwned> = box MyOwned;//~^ ERROR statics are not allowed to have custom pointers
turns into this:
static STATIC11: Box<MyOwned> = box MyOwned;
//~^ ERROR statics are not allowed to have destructors
//~| ERROR statics are not allowed to have destructors
//~| ERROR statics are not allowed to have destructors
//~| ERROR statics are not allowed to have mutable references
//~| ERROR cannot borrow a local variable inside a static block
(because of all the things the desugared code does that is not legal within the context of a static block.
We should try to address this in some way; since we have control over the desugaring, the static analyses, and the error reporting system, one can imagine we should be able to mark the expressions and/or spans and/or error sources in such a way that the compiler can present a higher level "box expression are not supported in static blocks" and suppress the other messages.
(Note that I am speaking of a desugaring implemented within libsyntax itself; we already attempt to address this problem with macro_rules! macros by providing a stack trace of the expansion there, for better or for worse.)
The text was updated successfully, but these errors were encountered:
spawned off of #22086
Some of the error messages from e.g. typeck get significant worse when reported from the depths of desugared code rather than from the high level syntax.
For example: this:
turns into this:
(because of all the things the desugared code does that is not legal within the context of a static block.
We should try to address this in some way; since we have control over the desugaring, the static analyses, and the error reporting system, one can imagine we should be able to mark the expressions and/or spans and/or error sources in such a way that the compiler can present a higher level "box expression are not supported in static blocks" and suppress the other messages.
(Note that I am speaking of a desugaring implemented within
libsyntax
itself; we already attempt to address this problem withmacro_rules!
macros by providing a stack trace of the expansion there, for better or for worse.)The text was updated successfully, but these errors were encountered: