Can't compile java class in Intellij Idea due to "cannot find symbol class X" error

intellij-idea, java

Solution

Try compiling the whole project (or at least class `B`) first.

If you compile only class `A`, class `B` cannot be found because it hasn't been compiled yet (therefore, no bytecode `B.class` file exists).

This is not intuitive, but true. IDEA doesn't automatically compile dependant classes when you compile single class.

Problem

I created new Java module from scratch in my project. "create 'src' folder" was selected in module creation wizard. There is single "com" package in source folder which contains two public classes (say A and B). A class instantiates B class. IDE does not show errors and B class source is opened on "ctrl+B" pressing when cursor is located on the class name inside A class source. But when I'm trying to compile A class (by context menu -> "compile A.java class") following error is shown Error:(15, 20) cannot find symbol class B "src" folder is marked as source root. It looks like IDE bug. Someone suggested to do "File->Invalidate Caches" to fix alike issue also asked on SO. I tried that and it did not help. What possible reason of that and how it can be fixed? -- Intellij Idea Ultimate 11.1.5. IDE Java: 1.7.0_45 Project SDK: 1.6.0_45

Original source