@FeatureNew('compiler.has_function_attribute', '0.48.0')
@permittedKwargs({})
def has_func_attribute_method(self, args, kwargs):
    args = mesonlib.stringlistify(args)
    if (len(args) != 1):
        raise InterpreterException('has_func_attribute takes exactly one argument.')
    (result, cached) = self.compiler.has_func_attribute(args[0], self.environment)
    cached = (mlog.blue('(cached)') if cached else '')
    h = (mlog.green('YES') if result else mlog.red('NO'))
    mlog.log('Compiler for {} supports function attribute {}:'.format(self.compiler.get_display_language(), args[0]), h, cached)
    return result
@FeatureNew('compiler.has_function_attribute', '0.48.0')
@permittedKwargs({})
def has_func_attribute_method(self, args, kwargs):
    args = mesonlib.stringlistify(args)
    if (len(args) != 1):
        raise InterpreterException('has_func_attribute takes exactly one argument.')
    (result, cached) = self.compiler.has_func_attribute(args[0], self.environment)
    cached = (mlog.blue('(cached)') if cached else )
    h = (mlog.green('YES') if result else mlog.red('NO'))
    mlog.log('Compiler for {} supports function attribute {}:'.format(self.compiler.get_display_language(), args[0]), h, cached)
    return result