Package-level declarations
Types
A dangling file module that holds its file outright.
The one service a core environment is missing before PSI can be written. Every mutation routes through ChangeUtil.prepareAndRunChangeAction → PomManager.getModel(project).runTransaction(...), and a core project has none: the real PomModelImpl lives in platform/core-impl, which the embedded compiler does not carry, and nothing in the compiler registers one because the compiler only ever reads PSI.
Properties
Jar-url separator: archive path before it, entry path after, so a trailing one asks for the archive's root. Inlined rather than read off URLUtil — two divergent copies of that class are on the classpath and only one declares the constant, so which node compiles decides whether the reference resolves.
Spliced in at the caret so unfinished source parses. Any identifier real code would never write does the job; this is IntelliJ's own spelling, so whatever special-cases it still recognizes ours. Copied rather than referenced: CompletionUtilCore lives in the IDE's completion infrastructure, which neither the embedded compiler nor the Analysis API brings along.