Struct kailua_types::ty::SpannedTySeq [] [src]

pub struct SpannedTySeq {
    pub head: Vec<Spanned<Ty>>,
    pub tail: Option<Spanned<Ty>>,
    pub span: Span,
}

A sequence of spanned value types. The sequence itself also contains its span.

Fields

The "head" types, a list of finite types at the beginning of the sequence.

The optional "tail" type. If present, it repeats indefinitely after "head".

This is implicitly nilable, because the actual value represented by the sequence is never infinite, so there should be a nil somewhere. Since we don't know where it ends, the tail should be implicitly unioned with nil in all practical sense.

We may implicitly put the nil here if it's missing, but the absence of the tail type makes a few important differences in checking. For example, function arguments are a sequence, and excess parameters to non-variadic arguments should be forbidden even if those excess parameters are always nil. This is only possible when we have a separate way to mark a missing tail.

A span of the entire sequence. Used for finer diagnostics.

Methods

impl SpannedTySeq
[src]

impl SpannedTySeq
[src]

Trait Implementations

impl Clone for SpannedTySeq
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialEq for SpannedTySeq
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'a> From<Spanned<T<'a>>> for SpannedTySeq
[src]

Performs the conversion.

impl From<Spanned<Ty>> for SpannedTySeq
[src]

Performs the conversion.

impl Dummy for SpannedTySeq
[src]

Generates a dummy value.

impl Union for SpannedTySeq
[src]

A type of the resulting type.

Calculates a union type of self and other, explicitly or implicitly. Read more

impl Lattice for SpannedTySeq
[src]

Asserts that self is a consistent subtype of other under the type context.

Asserts that self is a consistent type equal to other under the type context.

impl Display for SpannedTySeq
[src]

impl Debug for SpannedTySeq
[src]

Formats the value using the given formatter.