I found a bug with computing symbols in a very specific instance where after a case statement within the query of a implicit cursor for loop, symbols after the case statement will not be present in the outline or in symbol search. Here's an example I created with the language mode set to “Oracle-SQL and PLSQL”:
Here you can see the outline is as it should be. On the next screenshot, I added a case statement to the implicit cursor query:
As you can see, test_proc2 is no longer listed in the outline, and the assignment to variable “test” is now considered a symbol. It's like the END in the case statement is considered the END of the for loop, and is throwing everything off by an END statement (the case END ending the loop, the END loop ending the procedure declaration, and the procedure END now the end of the package body). This may happen in other scenarios, but this is one I found happen frequently in our codebase. Hopefully this explains it and let me know if there's somewhere else I should report this bug.