# Path: cbl/function_type.py
# class IntrinsicFunction(metaclass=abc.ABCMeta):
# 
#     @abc.abstractmethod
#     def invoke(self, compiler, container, args):
#         pass
# 
# Path: cbl/containers.py
# class AsyncReturn:
# class DelegatedWrite:
#     def __init__(self, realret, callback):
#     def must_await(self):
#     def type(self):
#     def value(self):
#     def write(self, compiler, other):


from collections import namedtuple
from .function_type import IntrinsicFunction
from .containers import InstanceSymbol, Temporary
    from cmd_ir.core import CompileTimeFunction
        from .compiler import CtorDeclaration
import contextlib
import cmd_ir.instructions as i


class NativeExec(IntrinsicFunction):

    def __init__(self, params, code):
        self.param_t = namedtuple('Args', (p.name for p in params))
        self.code = code

    def invoke(self, compiler, instance, args):
        # "this" not present in static functions

# Path: cbl/function_type.py
# class IntrinsicFunction(metaclass=abc.ABCMeta):
# 
#     @abc.abstractmethod
#     def invoke(self, compiler, container, args):
#         pass
# 
# Path: cbl/containers.py
# class AsyncReturn:
# class DelegatedWrite:
#     def __init__(self, realret, callback):
#     def must_await(self):
#     def type(self):
#     def value(self):
#     def write(self, compiler, other):


# Path: cbl/intrinsic_support.py
from collections import namedtuple
from .function_type import IntrinsicFunction
from .containers import InstanceSymbol, Temporary
    from cmd_ir.core import CompileTimeFunction
        from .compiler import CtorDeclaration
import contextlib
import cmd_ir.instructions as i



class NativeExec(IntrinsicFunction):

    def __init__(self, params, code):
        self.param_t = namedtuple('Args', (p.name for p in params))
        self.code = code

    def invoke(self, compiler, instance, args):
        # "this" not present in static functions

        have_this = isinstance(instance, InstanceSymbol)