public IMethodBuilder DeclareAccessor(AccessorType Type, IMethodSignatureTemplate Template) { var result = new LLVMAccessor(this, Type, Template); declaredAccessors.Add(result); return(result); }
public LLVMAccessor( LLVMProperty DeclaringProperty, AccessorType AccessorType, IMethodSignatureTemplate Template) : base(DeclaringProperty.ParentType, Template) { this.AccessorType = AccessorType; this.DeclaringProperty = DeclaringProperty; }
public IMethodBuilder DeclareMethod(IMethodSignatureTemplate Template) { var methodDef = new LLVMMethod(this, Template); declaredMethods.Add(methodDef); if (methodDef.IsStatic && methodDef.IsConstructor) { declaredStaticCtors.Add(methodDef); } return(methodDef); }
public LLVMMethod(LLVMType DeclaringType, IMethodSignatureTemplate Template, LLVMAbi Abi) : base(DeclaringType, Abi) { this.templateInstance = new MethodSignatureInstance(Template, this); this.allInterfaceImpls = new Lazy <HashSet <LLVMMethod> >(LookupAllInterfaceImpls); }