示例#1
0
 public MethodSpec
 (
     IClrElementName DeclaringTypeName,
     N Name,
     ClrTypeReference ReturnType = null,
     ClrAccessKind?AccessLevel   = null,
     bool IsStatic       = false,
     bool IsExtension    = false,
     bool IsAbstract     = false,
     bool IsVirtual      = false,
     bool IsOverride     = false,
     bool IsSealed       = false,
     bool IsPartial      = false,
     MethodBodySpec Body = null,
     CodeDocumentationSpec Documentation                = null,
     ClrCustomMemberIdentifier CustomMemberKind         = null,
     IEnumerable <MethodParameterSpec> MethodParameters = null,
     IEnumerable <AttributionSpec> Attributions         = null
 )
     : base(DeclaringTypeName, Name, Documentation, null, AccessLevel ?? ClrAccessKind.Default, IsStatic, Attributions, CustomMemberKind)
 {
     this.IsAbstract       = IsAbstract;
     this.IsVirtual        = IsVirtual;
     this.IsOverride       = IsOverride;
     this.IsSealed         = IsSealed;
     this.IsPartial        = IsPartial;
     this.ReturnType       = ReturnType;
     this.MethodParameters = rovalues(MethodParameters).OrderBy(x => x.Position).ToList();
     this.IsExtension      = IsExtension;
     this.Body             = Body;
 }
示例#2
0
 public EnumLiteralSpec(ClrEnumName DeclaringTypeName, ClrEnumLiteralName Name,
                        CoreDataValue LiteralValue                 = null, int?DeclarationOrder = null,
                        CodeDocumentationSpec Documentation        = null,
                        IEnumerable <AttributionSpec> Attributions = null)
     : base(DeclaringTypeName, Name, Documentation, DeclarationOrder,
            ClrAccessKind.Default, false, Attributions, ClrCustomMemberIdentifier.Empty)
     => this.LiteralValue = LiteralValue;
示例#3
0
        protected TypeSpec
        (
            IClrTypeName Name,
            CodeDocumentationSpec Documentation,
            ClrAccessKind AccessLevel,
            IEnumerable <AttributionSpec> Attributions,
            IEnumerable <TypeParameter> TypeParameters,
            IEnumerable <ClrTypeClosure> BaseTypes,
            IEnumerable <ClrInterfaceName> ImplicitRealizations,
            IClrElementName DeclaringType,
            bool IsStatic,
            IEnumerable <IClrMemberSpec> Members,
            bool IsPartial = false
        )
            : base(Name, Documentation, AccessLevel, Attributions)
        {
            this.Members              = rovalues(Members);
            this.BaseTypes            = rovalues(BaseTypes);
            this.ImplicitRealizations = rovalues(ImplicitRealizations);
            this.TypeParameters       = rovalues(TypeParameters);
            this.DeclaringType        = DeclaringType != null?some(DeclaringType) : none <IClrElementName>();

            this.IsStatic  = IsStatic;
            this.IsPartial = IsPartial;
        }
示例#4
0
 public StructSpec
 (
     ClrStructName Name,
     CodeDocumentationSpec Documentation                 = null,
     ClrAccessKind?AccessLevel                           = null,
     IEnumerable <AttributionSpec> Attributions          = null,
     IEnumerable <TypeParameter> TypeParameters          = null,
     IEnumerable <ClrTypeClosure> BaseTypes              = null,
     IEnumerable <ClrInterfaceName> ImplicitRealizations = null,
     IClrElementName DeclaringType                       = null,
     bool IsPartial = false,
     params IClrMemberSpec[] Members
 )
     : base
     (
         Name,
         Documentation,
         AccessLevel ?? ClrAccessKind.Public,
         Attributions ?? array <AttributionSpec>(),
         TypeParameters ?? array <TypeParameter>(),
         BaseTypes ?? array <ClrTypeClosure>(),
         ImplicitRealizations ?? array <ClrInterfaceName>(),
         DeclaringType,
         false,
         Members,
         IsPartial: IsPartial
     )
 {
 }
示例#5
0
 public MemberOperatorSpec
 (
     IClrElementName DeclaringTypeName,
     ClrAccessKind?AccessLevel                          = null,
     MethodBodySpec Body                                = null,
     CodeDocumentationSpec Documentation                = null,
     ClrCustomMemberIdentifier CustomMember             = null,
     IEnumerable <MethodParameterSpec> MethodParameters = null,
     IEnumerable <AttributionSpec> Attributions         = null
 )
     : base(
         DeclaringTypeName: DeclaringTypeName,
         Name: new ClrMemberOperatorName(DeclaringTypeName.SimpleName),
         AccessLevel: AccessLevel ?? ClrAccessKind.Public,
         IsStatic: true,
         IsExtension: false,
         IsAbstract: false,
         IsVirtual: false,
         IsOverride: false,
         IsSealed: false,
         IsPartial: false,
         Body: Body,
         Documentation: Documentation,
         CustomMemberKind: CustomMember,
         MethodParameters: MethodParameters,
         Attributions: Attributions)
 {
 }
示例#6
0
 public DelegateSpec
 (
     ClrDelegateName Name,
     ClrAccessKind AccessLevel,
     IClrElementName ReturnTypeName,
     CodeDocumentationSpec Documentation        = null,
     IEnumerable <AttributionSpec> Attributions = null,
     IEnumerable <TypeParameter> TypeParameters = null,
     IClrElementName DeclaringType = null,
     params MethodParameterSpec[] Parameters
 )
     : base
     (
         Name,
         Documentation,
         AccessLevel,
         Attributions ?? array <AttributionSpec>(),
         TypeParameters ?? array <TypeParameter>(),
         array <ClrTypeClosure>(),
         array <ClrInterfaceName>(),
         DeclaringType,
         false,
         array <IClrMemberSpec>()
     )
 {
     this.ReturnTypeName   = ReturnTypeName;
     this.MethodParameters = rovalues(Parameters);
 }
示例#7
0
 public InterfaceSpec
 (
     ClrInterfaceName Name,
     CodeDocumentationSpec Documentation        = null,
     ClrAccessKind?AccessLevel                  = null,
     IEnumerable <AttributionSpec> Attributions = null,
     IEnumerable <TypeParameter> TypeParameters = null,
     IEnumerable <ClrTypeClosure> BaseTypes     = null,
     IClrElementName DeclaringType              = null,
     bool IsPartial = false,
     IEnumerable <IClrMemberSpec> Members = null
 )
     : base
     (
         Name: Name,
         Documentation: Documentation,
         AccessLevel: AccessLevel ?? ClrAccessKind.Public,
         Attributions: Attributions ?? array <AttributionSpec>(),
         TypeParameters: TypeParameters ?? array <TypeParameter>(),
         BaseTypes: BaseTypes ?? array <ClrTypeClosure>(),
         ImplicitRealizations: array <ClrInterfaceName>(),
         DeclaringType: DeclaringType,
         IsStatic: false,
         Members: Members,
         IsPartial: IsPartial
     )
 {
 }
示例#8
0
 protected ElementSpec(IClrElementName Name, CodeDocumentationSpec Documentation,
                       ClrAccessKind AccessLevel, IEnumerable <AttributionSpec> Attributions = null)
 {
     this.Name          = Name;
     this.Documentation = Documentation;
     this.AccessLevel   = AccessLevel;
     this.Attributions  = rovalues(Attributions);
 }
示例#9
0
 public EnumSpec(ClrEnumName Name, ClrAccessKind AccessLevel, ClrTypeReference UnderlyingType,
                 IEnumerable <EnumLiteralSpec> Literals, CodeDocumentationSpec Documentation = null,
                 IEnumerable <AttributionSpec> Attributions = null, IClrElementName DeclaringType = null)
     : base(Name, Documentation, AccessLevel, Attributions ?? array <AttributionSpec>(),
            TypeParameters: array <TypeParameter>(), BaseTypes: array <ClrTypeClosure>(),
            ImplicitRealizations: array <ClrInterfaceName>(), DeclaringType: DeclaringType,
            IsStatic: false, Members: array(Literals))
 {
     this.UnderlyingType = UnderlyingType;
 }
示例#10
0
 public ConversionOperatorSignature(ClrTypeReference InputType, ClrTypeReference ReturnType,
                                    ConversionOperatorKind ConversionKind, IEnumerable <TypeParameter> TypeParameters = null,
                                    CodeDocumentationSpec Documentation = null)
     : base(new ClrMemberOperatorName(""), Documentation: Documentation,
            AccessLevel: ClrAccessKind.Default)
 {
     this.ConversionKind = ConversionKind;
     this.InputType      = InputType;
     this.ReturnType     = ReturnType;
     this.TypeParameters = rovalues(TypeParameters).OrderBy(x => x.Position).ToList();
 }
示例#11
0
 protected MemberSpec(IClrElementName DeclaringTypeName, N MemberName,
                      CodeDocumentationSpec Documentation, int?DeclarationOrder, ClrAccessKind AccessLevel,
                      bool IsStatic, IEnumerable <AttributionSpec> Attributions,
                      ClrCustomMemberIdentifier CustomMember)
     : base(MemberName, Documentation, AccessLevel, Attributions)
 {
     this.DeclaringTypeName = DeclaringTypeName;
     this.DeclarationOrder  = DeclarationOrder;
     this.IsStatic          = IsStatic;
     this.CustomMember      = CustomMember ?? ClrCustomMemberIdentifier.Empty;
 }
示例#12
0
 public MethodSignature
 (
     ClrMethodName Name,
     ClrTypeReference ReturnType = null,
     IEnumerable <MethodParameterSpec> MethodParameters = null,
     IEnumerable <TypeParameter> TypeParameters         = null,
     CodeDocumentationSpec Documentation = null
 ) : base(Name, Documentation: Documentation, AccessLevel: ClrAccessKind.Default)
 {
     this.MethodName       = Name;
     this.ReturnType       = ReturnType;
     this.MethodParameters = rovalues(MethodParameters).OrderBy(x => x.Position).ToList();
     this.TypeParameters   = rovalues(TypeParameters).OrderBy(x => x.Position).ToList();
 }
示例#13
0
 public ClassSpec
 (
     ClrClassName Name,
     CodeDocumentationSpec Documentation                 = null,
     ClrAccessKind?AccessLevel                           = null,
     IEnumerable <AttributionSpec> Attributions          = null,
     IEnumerable <TypeParameter> TypeParameters          = null,
     IEnumerable <ClrTypeClosure> BaseTypes              = null,
     IEnumerable <ClrInterfaceName> ImplicitRealizations = null,
     IClrElementName DeclaringType                       = null,
     bool IsStatic = false,
     IEnumerable <IClrMemberSpec> Members = null,
     bool IsPartial = false,
     bool IsSealed  = false,
     IEnumerable <IClrTypeSpec> DeclaredTypes = null,
     bool IsAbstract = false
 )
     : base
     (
         Name,
         Documentation,
         AccessLevel ?? ClrAccessKind.Public,
         Attributions ?? array <AttributionSpec>(),
         TypeParameters ?? array <TypeParameter>(),
         BaseTypes ?? array <ClrTypeClosure>(),
         ImplicitRealizations ?? array <ClrInterfaceName>(),
         DeclaringType,
         IsStatic,
         Members ?? array <IClrMemberSpec>(),
         IsPartial: IsPartial
     )
 {
     this.IsSealed      = IsSealed;
     this.DeclaredTypes = rolist(DeclaredTypes);
     this.IsAbstract    = IsAbstract;
 }
示例#14
0
 public MethodParameterSpec(ClrMethodParameterName Name, ClrTypeReference ParameterType,
                            int?Position = null, bool IsParameterArray = false, CodeDocumentationSpec Documentation = null,
                            IEnumerable <AttributionSpec> Attributions = null)
     : base(Name, Documentation, ClrAccessKind.Default, Attributions)
 {
     this.ParameterType    = ParameterType;
     this.Position         = Position;
     this.IsParameterArray = IsParameterArray;
 }
示例#15
0
 public PropertySpec(IClrElementName DeclaringTypeName, ClrPropertyName Name, ClrTypeReference PropertyType,
                     ClrAccessKind?AccessLevel = null, int?DeclarationOrder = null, CodeDocumentationSpec Documentation = null,
                     bool CanRead = true, ClrAccessKind?ReadAccessLevel     = null, bool CanWrite    = true,
                     ClrAccessKind?WriteAccessLevel = null, bool IsStatic   = false, bool IsAbstract = false, bool IsVirtual = false,
                     bool IsOverride = false, bool IsSealed = false, IEnumerable <AttributionSpec> Attributions = null,
                     ClrCustomMemberIdentifier CustomMember = null, bool IsNew = false)
     : base(DeclaringTypeName, Name, Documentation, DeclarationOrder, AccessLevel ?? ClrAccessKind.Default,
            IsStatic, Attributions ?? array <AttributionSpec>(), CustomMember)
 {
     this.PropertyType     = PropertyType;
     this.CanRead          = CanRead;
     this.ReadAccessLevel  = ReadAccessLevel ?? ClrAccessKind.Default;
     this.CanWrite         = CanWrite;
     this.WriteAccessLevel = WriteAccessLevel ?? ClrAccessKind.Default;
     this.IsAbstract       = IsAbstract;
     this.IsVirtual        = IsVirtual;
     this.IsOverride       = IsOverride;
     this.IsSealed         = IsSealed;
     this.IsNew            = IsNew;
 }
示例#16
0
 public UsingSpec(IClrElementName SubjectName, string AliasName, bool IsStatic, CodeDocumentationSpec Documentation)
 {
     this.SubjectName   = SubjectName;
     this.IsStatic      = IsStatic;
     this.Documentation = Documentation;
     this.AliasName     = AliasName;
 }
示例#17
0
 public TypeParameter(ClrTypeParameterName ParameterName, int Position, CodeDocumentationSpec Documentation = null)
     : base(ParameterName, Documentation, ClrAccessKind.Default, array <AttributionSpec>())
 {
     this.Position = Position;
 }
示例#18
0
 public FieldSpec(IClrElementName DeclaringTypeName, ClrFieldName Name, ClrTypeReference FieldType,
                  ClrAccessKind?AccessLevel = null, int?DeclarationOrder = null, CodeDocumentationSpec Documentation = null,
                  bool IsStatic             = false, bool IsReadOnly = false, bool IsConst = false,
                  IEnumerable <AttributionSpec> Attributions = null, FieldInitializerSpec Initializer = null,
                  ClrCustomMemberIdentifier CustomMember     = null)
     : base(DeclaringTypeName, Name, Documentation, DeclarationOrder, AccessLevel ?? ClrAccessKind.Default,
            IsStatic, Attributions, CustomMember)
 {
     this.FieldType        = FieldType;
     this.IsReadOnly       = IsReadOnly;
     this.IsConst          = IsConst;
     this.FieldInitializer = Initializer;
 }
示例#19
0
 public Variable(ClrVariableName Name, ClrTypeReference typeref = null, CodeDocumentationSpec Documentation = null)
     : base(Name, Documentation, ClrAccessKind.Default, array <AttributionSpec>())
 {
     this.VariableType = typeref;
 }