Function not declared in scope: used to work and now stopped working (?)

I can verify the issue. It seems that there is something about the FastLED library that breaks prototype generation. Here's a minimal code to reproduce the problem:

#include <FastLED.h>
void setup() {
  foo();
}

void loop() {}

void foo() {}

The issue also occurs in Arduino IDE beta build 25 so it's nothing specific to the Arduino Web Editor.

The issue does not occur with Arduino IDE 1.8.5 so if you like you can use that IDE as a workaround or you can just add the prototypes for all the functions in the sketch.

The issue does not occur with every library. For example:

#include <Ethernet.h>
void setup() {
  foo();
}

void loop() {}

void foo() {}

will compile.

It actually breaks prototype generation rather than just putting the prototype in the wrong place.

I have reported this to the Arduino developers here: