blob: e51eb7f5852f58d353fad7e66ee5856759546a1d [file] [log] [blame]
-- a.cue --
@package("foo")
package bar
@file("foo")
a: {
@decl(1)
@decl(2)
} @field(2)
a: {
@decl(1)
@decl(3)
} @field(1) @field(4)
a: {} @field(1) @field(3)
doNotPropagate: {
#A: { } @attr1()
a: #A
// Do not accumulated field attributes in embedding.
#B: { } @attr1()
b: { #B }
}
embedScalarField: {
a: { 2 } @attr1()
a: { _ } @attr2()
}
embedScalarDecl: {
b0: { 2, @attr1() }
b1: b0
b2: { 2, b0, @attr2() }
}
dontMergeForDef: {
a: { @decl1() }
b: a & { x: 1, @decl2() }
c: a & { @decl2() }
d: { a, @decl2() }
}
-- b.cue --
@package("b")
package bar
@file("bar")
a: {
@decl(5)
} @field(5)
-- out/definition --
package bar
@file("foo")
@file("bar")
a: {
@decl(1)
@decl(2)
@decl(3)
@decl(5)
} @field(2) @field(1) @field(4) @field(3) @field(5)
doNotPropagate: {
#A: {} @attr1()
a: #A
// Do not accumulated field attributes in embedding.
#B: {} @attr1()
b: #B
}
embedScalarField: {
a: 2 @attr1() @attr2()
}
embedScalarDecl: {
b0: {
@attr1()
2
}
b1: b0
b2: {
@attr2()
b0
2
}
}
dontMergeForDef: {
a: {
@decl1()
}
b: a & {
@decl2()
x: 1
}
c: a & {
@decl2()
}
d: {
@decl2()
a
}
}
-- out/doc --
[]
[a]
[doNotPropagate]
[doNotPropagate #A]
[doNotPropagate a]
[doNotPropagate #B]
- Do not accumulated field attributes in embedding.
[doNotPropagate b]
[embedScalarField]
[embedScalarField a]
[embedScalarDecl]
[embedScalarDecl b0]
[embedScalarDecl b1]
[embedScalarDecl b2]
[dontMergeForDef]
[dontMergeForDef a]
[dontMergeForDef b]
[dontMergeForDef b x]
[dontMergeForDef c]
[dontMergeForDef d]
-- out/value --
== Simplified
{
a: {}
doNotPropagate: {
a: {}
b: {}
}
embedScalarField: {
a: 2
}
embedScalarDecl: {
b0: 2
b1: 2
b2: 2
}
dontMergeForDef: {
a: {}
b: {
x: 1
}
c: {}
d: {}
}
}
== Raw
{
a: {}
doNotPropagate: {
#A: {}
a: {}
// Do not accumulated field attributes in embedding.
#B: {}
b: {}
}
embedScalarField: {
a: 2
}
embedScalarDecl: {
b0: 2
b1: 2
b2: 2
}
dontMergeForDef: {
a: {}
b: {
x: 1
}
c: {}
d: {}
}
}
== Final
{
a: {}
doNotPropagate: {
a: {}
b: {}
}
embedScalarField: {
a: 2
}
embedScalarDecl: {
b0: 2
b1: 2
b2: 2
}
dontMergeForDef: {
a: {}
b: {
x: 1
}
c: {}
d: {}
}
}
== All
{
@file("foo")
@file("bar")
a: {
@decl(1)
@decl(2)
@decl(3)
@decl(5)
} @field(2) @field(1) @field(4) @field(3) @field(5)
doNotPropagate: {
#A: {} @attr1()
a: {}
// Do not accumulated field attributes in embedding.
#B: {} @attr1()
b: {}
}
embedScalarField: {
a: 2 @attr1() @attr2()
}
embedScalarDecl: {
b0: {
2, @attr1()
}
b1: {
2, @attr1()
}
b2: {
2, @attr2(), @attr1()
}
}
dontMergeForDef: {
a: {
@decl1()
}
b: {
@decl1(), @decl2()
x: 1
}
c: {
@decl1(), @decl2()
}
d: {
@decl2(), @decl1()
}
}
}
== Eval
{
@file("foo")
@file("bar")
a: {
@decl(1)
@decl(2)
@decl(3)
@decl(5)
} @field(2) @field(1) @field(4) @field(3) @field(5)
doNotPropagate: {
#A: {} @attr1()
a: {}
#B: {} @attr1()
b: {}
}
embedScalarField: {
a: 2 @attr1() @attr2()
}
embedScalarDecl: {
b0: {
2, @attr1()
}
b1: {
2, @attr1()
}
b2: {
2, @attr2(), @attr1()
}
}
dontMergeForDef: {
a: {
@decl1()
}
b: {
@decl1(), @decl2()
x: 1
}
c: {
@decl1(), @decl2()
}
d: {
@decl2(), @decl1()
}
}
}