blob: a78285d9f303456ab2253b5ee272a252fb135937 [file] [log] [blame]
T :: {
shared: int
}
T :: {} | {
exact: string
} | {
regex: string
}
T :: {} | {
count: int
} | {
amount: int
}
T :: {
shared2: int
}
MyInt :: int
Foo: {
include: T
exclude: [...T]
count: MyInt
}
Incompatible :: {
shared: int
} | {
shared: int
extra1: int
} | {
shared: int
extra2: int
}
WithMap :: {
shared: [string]: int
} | {
shared: [string]: int
extra: int
} | {
shared: string // incompatible
extra: int
}
Embed :: {
a?: int
close({}) |
close({b: T}) |
close({c: int})
T :: {b?: int}
close({}) |
close({d: T}) |
close({e: int})
// TODO: maybe support builtin to write this as
// oneof({},
// {b: int},
// {c: int})
}