protected TLFunction(string mangledName, SwiftName module, SwiftName functionName,
                      SwiftClassType classType, SwiftBaseFunctionType signature, ulong offset, OperatorType oper = OperatorType.None,
                      CoreCompoundType type = CoreCompoundType.Function)
     : base(type, mangledName, module, classType, offset)
 {
     Name      = functionName;
     Signature = signature;
     Operator  = oper;
 }
 public TLDefaultArgumentInitializer(string mangledName, SwiftName module, SwiftBaseFunctionType function, int index, ulong offset)
     : base(CoreCompoundType.ArgumentInitializer, mangledName, module, offset)
 {
     Signature     = Ex.ThrowOnNull(function, nameof(function));
     ArgumentIndex = index;
 }
 public TLMethodDescriptor(string mangledName, SwiftName module, SwiftName functionName,
                           SwiftClassType classType, SwiftBaseFunctionType signature, ulong offset, OperatorType oper = OperatorType.None)
     : base(mangledName, module, functionName, classType, signature, offset, oper, CoreCompoundType.MethodDescriptor)
 {
 }
 public TLFunction(string mangledName, SwiftName module, SwiftName functionName,
                   SwiftClassType classType, SwiftBaseFunctionType signature, ulong offset, OperatorType oper = OperatorType.None)
     : this(mangledName, module, functionName, classType, signature, offset, oper, CoreCompoundType.Function)
 {
 }