Ejemplo n.º 1
0
        public NamedTypeDetails(IdentifierDetails name, ImmutableList <GenericTypeParameterDetails> genericTypeParams)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (genericTypeParams == null)
            {
                throw new ArgumentNullException(nameof(genericTypeParams));
            }
            if (genericTypeParams.Any(t => t == null))
            {
                throw new ArgumentException("Null reference encountered in set", nameof(genericTypeParams));
            }

            Name = name;
            GenericTypeParams = genericTypeParams;

            var endOfContent = genericTypeParams.Any()
                ? genericTypeParams.Max(t => t.SourceRange.StartIndex + t.SourceRange.Length)
                : (name.SourceRange.StartIndex + name.SourceRange.Length);

            SourceRange = new SourceRangeDetails(
                name.SourceRange.StartIndex,
                endOfContent - name.SourceRange.StartIndex
                );
        }
        public InterfaceDetails(
            IdentifierDetails name,
            ImmutableList <GenericTypeParameterDetails> genericTypeParams,
            ImmutableList <NamedTypeDetails> baseTypes,
            ImmutableList <PropertyDetails> contents,
            SourceRangeDetails source)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (genericTypeParams == null)
            {
                throw new ArgumentNullException(nameof(genericTypeParams));
            }
            if (genericTypeParams.Any(t => t == null))
            {
                throw new ArgumentException("Null reference encountered in set", nameof(genericTypeParams));
            }
            if (baseTypes == null)
            {
                throw new ArgumentNullException(nameof(baseTypes));
            }
            if (baseTypes.Any(t => t == null))
            {
                throw new ArgumentException("Null reference encountered in set", nameof(baseTypes));
            }
            if (contents == null)
            {
                throw new ArgumentNullException(nameof(contents));
            }
            if (contents.Any(p => p == null))
            {
                throw new ArgumentException("Null reference encountered in set", nameof(contents));
            }
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            Name = name;
            GenericTypeParams = genericTypeParams;
            BaseTypes         = baseTypes;
            Contents          = contents;
            SourceRange       = source;
        }
        public PropertyDetails(IdentifierDetails name, TypeDescriptionDetails type)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (type == null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            Name = name;
            Type = type;

            SourceRange = new SourceRangeDetails(
                name.SourceRange.StartIndex,
                (type.SourceRange.StartIndex + type.SourceRange.Length) - name.SourceRange.StartIndex
                );
        }