Это в значительной степени зависит от IDE.
IntelliJ использует процесс индексации, в котором он берет весь ваш проект и индексирует его в своих внутренних структурах, известных как Psi*
классы.Затем на эти классы ссылается IDE для обеспечения статического анализа и определения потока кода.
Я не так хорошо знаком с Eclipse, но абстрактное синтаксическое дерево существует и, вероятно, аналогично внутренней структуре IntelliJ.
IntelliJ не пытается компилировать ваш код от вашего имени, если вы не позволите его, но для того, чтобы статический анализ действительно работал, ваш код должен быть компилируемым.Если это не так, вы не получите статический анализ;вместо этого вы получите красные волнистые линии.