internal VccFunctionTypeExpression(bool acceptsExtraArguments, CallingConvention callingConvention, TypeExpression returnType, NameDeclaration name, List<ParameterDeclaration> parameters, FunctionDeclarator declarator, ISourceLocation sourceLocation) : this(acceptsExtraArguments, callingConvention, returnType, name, parameters, sourceLocation) { this.declarator = declarator; }
private VccFunctionTypeExpression(BlockStatement containingBlock, VccFunctionTypeExpression template) : base(containingBlock, template) { this.AcceptsExtraArguments = template.AcceptsExtraArguments; this.CallingConvention = template.CallingConvention; this.ReturnType = (TypeExpression)template.ReturnType.MakeCopyFor(containingBlock); this.Name = template.Name.MakeCopyFor(containingBlock.Compilation); this.parameters = new List<ParameterDeclaration>(template.parameters); this.declarator = template.declarator; }
internal FunctionDeclarator(Declarator functionName, FunctionDeclarator template) : base(functionName.SourceLocation) { this.FunctionName = functionName; this.parameters = template.Parameters; this.templateParameters = template.TemplateParameters; this.Specifiers = template.Specifiers; this.Contract = new FunctionOrBlockContract(template.Contract); }