Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
 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)
                                                                                  ));
 }
Exemplo n.º 3
0
        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));
        }