blob: 6fa37d46f1f0997f2d0b36948ad5c1ec4a5725d9 [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: int}) |
close({c: int})
// TODO: maybe support builtin to write this as
// oneof({},
// {b: int},
// {c: int})
}