1. Search the top-level function or property (only they can produce blocks that won't affect other declarations) 2. Check if current position is hidden by this declaration O^2 behaviour is removed