示例#1
0
 private IMethodDefinition CreateForwardReferenceToMethodDefinition()
 {
     //TODO: if not compiling an object file give an error
       MethodDeclaration.Flags flags = MethodDeclaration.Flags.External;
       if (this.AcceptsExtraArguments) flags |= MethodDeclaration.Flags.AcceptsExtraArguments;
       FunctionDefinition externFunc = new FunctionDefinition(flags, this.specifiers, this.CallingConvention, TypeMemberVisibility.Public, this.Type, this.Name, this.templateParameters, this.parameters, null, this.isSpec, this.expansion, this.SourceLocation);
       externFunc.SetContainingTypeDeclaration(this.CompilationPart.GlobalDeclarationContainer, false);
       if (this.templateParameters != null) {
     foreach (GenericMethodParameterDeclaration templatePar in this.templateParameters) templatePar.SetDeclaringMethod(externFunc);
       }
       IMethodDefinition result = externFunc.MethodDefinition;
       this.TransferContract(result);
       return result;
 }