human
Solve the following python programming problem given the following code:
def _find_warnings(filename, lines, ast_list, static_is_optional) : 
    def print_warning(node) : 
        for name in node.name.split (',') : 
            print ("{}:{}: static data '{}'".format (filename, lines.get_line_number (node.start), name)) 
def find_static(function_node) : 
        tokens = [] 
        static_found = False 
        for node in function_node.body : 
            if (node.name == 'static') : 
                static_found = True 
if static_found : 
                tokens.append (node) 
                if (node.name == ';') : 
                    body = list (ast.ASTBuilder (iter (tokens), filename).generate ()) 
                    _find_warnings (filename, lines, body, False) 
                    tokens = [] 
                    static_found = False 
count = 0 
    for node in ast_list : 
        if isinstance (node, ast.VariableDeclaration) : 
            is_static = ('static' in node.type.modifiers) 
            is_not_const = (('const' not in node.type.modifiers) and ('constexpr' not in node.type.modifiers)) 
            if (is_not_const and (ast_list or is_static)) : 
                print_warning (node) 
                count += 1 
else : 
            if (isinstance (node, ast.Function) and node.body) : 
                find_static (node) 
else : 
                if (isinstance (node, ast.Class) and node.body) : 
                    _find_warnings (filename, lines, node.body, False) 
return count 

    
    

    Fix the buggy line: if (is_not_const and (ast_list or is_static)) :
assistant
#Here is Python code to fix the buggy line: if (is_not_const and (ast_list or is_static)) :
.

if (is_not_const and (static_is_optional or is_static)) :