this post was submitted on 02 Oct 2023
1101 points (98.8% liked)

Programmer Humor

37322 readers
308 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 6 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Cwilliams@beehaw.org 7 points 2 years ago (5 children)

Yes! Does anyone actually know why this happens!?

[–] irmoz@reddthat.com 18 points 2 years ago* (last edited 2 years ago)

The error is usually with the line before

EDIT: could be a missing bracket:

if (x == 5){
    do_thing();

or a comparison in place of an assignment:

x == 5;
[–] Cube6392@beehaw.org 6 points 2 years ago (1 children)

It depends on what you're using. I see it most often with TypeScript when the source maps are incorrect

[–] Cwilliams@beehaw.org 7 points 2 years ago* (last edited 2 years ago) (2 children)

When I forget a semicolon (in languages that like those), it gives the the error on the next line instead of the one that I forgot the semicolon on. It makes sense once you think about it but, man, it trips me up sometimes

[–] Knusper@feddit.de 6 points 2 years ago* (last edited 2 years ago) (2 children)

Definitely also depends on the language. Here's e.g. Rust, the goddamn overachiever, pointing arrows and everything:

Often feels like, if you know where it needs to go, why ask me?

[–] GamesRevolution@programming.dev 1 points 2 years ago (1 children)

Doesn't rust-analyser have the code suggestions that do fix it for you? It's not fixing automatically, but it does know where it needs to go and it's giving you a button that you click and it automatically fixes it

[–] Knusper@feddit.de 3 points 2 years ago

Oh yeah, it does. I'm not really complaining about fixing it myself. Mostly, I was joking that I felt like I'm unneeded. Rust-analyzer actually being able to fix it on its own, doesn't help in that sense either. 🙃

[–] Cube6392@beehaw.org 1 points 2 years ago (1 children)

I assumed we weren't talking "expected semicolon" since that ones pretty explanatory and would never appear on a blank line. That said, it does provide an opportunity to talk about the worst code style I ever saw. A dude decided he wanted semicolons at the start of lines so that compiler error always mapped to the line he would have put the semicolon on

[–] Cwilliams@beehaw.org 1 points 2 years ago

At least there's at least some benefit there :P

[–] kherge@beehaw.org 6 points 2 years ago

Some thoughts based on personal experience:

  1. File was edited after error was reported, but before investigating it. (Editing, code formatter, etc.)
  2. Build cache was not cleared, so old source was used.
[–] xilliah@beehaw.org 1 points 2 years ago

If you have optimizations enabled this can easily occur due to code being moved around behind the scenes. For example the body of a small function can be inserted where it is called. For example in c# if you get a null ref exception in such inlined code it will actually direct you to the place where the function is called from, rather than its body.

So if you know, you probably can find the issue. In the worst case just go to debug mode with opti off, or use an attribute on the function to force it not to inline.