[walker] Handle catch scopes more accurately in scopeVisitor