Tags: VKCOM/noverify
Tags
linter: some fields from RootWalker have been moved to the workspace.… …File structure (#875) Thanks to this change, the number of fields in the RootWalker has decreased, and the signatures of some functions have been simplified, which now accept a single argument of type `*workspace.File`.
fixes and improvements for regexpVet checker (#412) * Improved flag flow checking. Now it can handle flag clearing. * Added checks for dangling/redundant ^. * Fix false positive with altAnchors. Signed-off-by: Iskander Sharipov <quasilyte@gmail.com>
fix bugs found during php-corpus check (#273) Running NoVerify on the big open source code corpus revealed several bugs: 1. GetRootNode now returns *node.Root instead of node.Node, we assigned that to node.Node vairable and nil check was broken, causing linter to panic on nil nodes instead of giving "empty root node" notice. 2. Calling EnterNode on anon class gives a panic, since class name is nil and we can't set current class name because of that. Since a lot of class handling relies on current class name being available, skip anon class handling for now by returning false for these nodes. This cludge can be removed when #272 is resolved. 3. We can't eagerly resolve ClassConstFetch if ExprType is called when indexing is incomplete as it uses FindClass function that depends on meta.Index being complete. This causes race condition in fact (concurrent map reads and writes). Fixed by introducing wrapped class const fetch type. Signed-off-by: Iskander Sharipov <quasilyte@gmail.com>