예제 #1
0
        public IMethodBuilder DeclareAccessor(AccessorType Type, IMethodSignatureTemplate Template)
        {
            var result = new LLVMAccessor(this, Type, Template);

            declaredAccessors.Add(result);
            return(result);
        }
예제 #2
0
 public LLVMAccessor(
     LLVMProperty DeclaringProperty,
     AccessorType AccessorType,
     IMethodSignatureTemplate Template)
     : base(DeclaringProperty.ParentType, Template)
 {
     this.AccessorType      = AccessorType;
     this.DeclaringProperty = DeclaringProperty;
 }
예제 #3
0
        public IMethodBuilder DeclareMethod(IMethodSignatureTemplate Template)
        {
            var methodDef = new LLVMMethod(this, Template);

            declaredMethods.Add(methodDef);
            if (methodDef.IsStatic && methodDef.IsConstructor)
            {
                declaredStaticCtors.Add(methodDef);
            }
            return(methodDef);
        }
예제 #4
0
 public LLVMMethod(LLVMType DeclaringType, IMethodSignatureTemplate Template, LLVMAbi Abi)
     : base(DeclaringType, Abi)
 {
     this.templateInstance  = new MethodSignatureInstance(Template, this);
     this.allInterfaceImpls = new Lazy <HashSet <LLVMMethod> >(LookupAllInterfaceImpls);
 }