public WeakEntryPointDefinition( IOrType <IFrontendType <IVerifiableType>, IError> outputType, WeakMemberDefinition parameterDefinition, IBox <IReadOnlyList <IOrType <IBox <IFrontendCodeElement>, IError> > > body, IOrType <WeakScope, IError> scope, IReadOnlyList <IIsPossibly <IConvertableFrontendCodeElement <ICodeElement> > > staticInitializers) : base(scope ?? throw new ArgumentNullException(nameof(scope)), body, staticInitializers) { OutputType = outputType ?? throw new ArgumentNullException(nameof(outputType)); ParameterDefinition = parameterDefinition ?? throw new ArgumentNullException(nameof(parameterDefinition)); }
public WeakMethodDefinition( IOrType <IFrontendType <IVerifiableType>, IError> outputType, WeakMemberDefinition parameterDefinition, IBox <IReadOnlyList <IOrType <IBox <IFrontendCodeElement>, IError> > > body, IOrType <WeakScope, IError> scope, IReadOnlyList <IIsPossibly <IConvertableFrontendCodeElement <ICodeElement> > > staticInitializers) : base(scope ?? throw new ArgumentNullException(nameof(scope)), body, staticInitializers) { OutputType = outputType ?? throw new ArgumentNullException(nameof(outputType)); ParameterDefinition = parameterDefinition ?? throw new ArgumentNullException(nameof(parameterDefinition)); type = OrType.Make <SyntaxModel.Elements.AtomicTypes.MethodType, IError>(new Tac.SyntaxModel.Elements.AtomicTypes.MethodType( InputType, new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(OutputType) )); }
public WeakImplementationDefinition( WeakMemberDefinition contextDefinition, WeakMemberDefinition parameterDefinition, IOrType <IFrontendType <IVerifiableType>, IError> outputType, IBox <IReadOnlyList <IOrType <IBox <IFrontendCodeElement>, IError> > > metohdBody, IBox <WeakScope> scope, IEnumerable <IFrontendCodeElement> staticInitializers) { ContextDefinition = contextDefinition ?? throw new ArgumentNullException(nameof(contextDefinition)); OutputType = outputType ?? throw new ArgumentNullException(nameof(outputType)); ParameterDefinition = parameterDefinition ?? throw new ArgumentNullException(nameof(parameterDefinition)); MethodBody = metohdBody ?? throw new ArgumentNullException(nameof(metohdBody)); Scope = scope ?? throw new ArgumentNullException(nameof(scope)); StaticInitialzers = staticInitializers ?? throw new ArgumentNullException(nameof(staticInitializers)); type = OrType.Make <IFrontendType <IVerifiableType>, IError>(SyntaxModel.Elements.AtomicTypes.MethodType.ImplementationType( ParameterDefinition.Type, new Box <IOrType <IFrontendType <IVerifiableType>, IError> >(OutputType), ContextDefinition.Type)); }