void (@NotNull PyFunction node) { ASTNode nameNode = node.getNameNode(); if (nameNode != null) { final String name = node.getName(); LanguageLevel languageLevel = LanguageLevel.forElement(node); if (PyNames.UNDERSCORED_ATTRIBUTES.contains(name) || PyNames.getBuiltinMethods(languageLevel).containsKey(name)) { PyClass cls = node.getContainingClass(); if (PyUtil.isNewMethod(node)) { boolean new_style_class = false; try { if (cls != null) new_style_class = cls.isNewStyleClass(null); } catch (IndexNotReadyException ignored) { } if (new_style_class) { addHighlightingAnnotation(nameNode, PyHighlighter.PY_PREDEFINED_DEFINITION); } } else { addHighlightingAnnotation(nameNode, PyHighlighter.PY_PREDEFINED_DEFINITION); } } else { if (ScopeUtil.getScopeOwner(node) instanceof PyFunction) { addHighlightingAnnotation(nameNode, PyHighlighter.PY_NESTED_FUNC_DEFINITION); } else { addHighlightingAnnotation(nameNode, PyHighlighter.PY_FUNC_DEFINITION); } } } }