-- in.cue --
#Foo: {
	field: int
	recursive: {
		field: string
	}
}

// Allowed
#Foo1: {field: int}
#Foo1: {field2: string}

foo: #Foo
foo: {feild: 2}

foo1: #Foo
foo1: {
	field: 2
	recursive: {
		feild: 2
	}
}

#Bar: {
	field: int
	{[A=_]: int}
}
bar: #Bar
bar: {feild: 2}

#Mixed: string
Mixed:  string

mixedRec: {#Mixed: string}
mixedRec: {Mixed: string}
-- out/compile --
--- in.cue
{
  #Foo: {
    field: int
    recursive: {
      field: string
    }
  }
  #Foo1: {
    field: int
  }
  #Foo1: {
    field2: string
  }
  foo: 〈0;#Foo〉
  foo: {
    feild: 2
  }
  foo1: 〈0;#Foo〉
  foo1: {
    field: 2
    recursive: {
      feild: 2
    }
  }
  #Bar: {
    field: int
    {
      [_]: int
    }
  }
  bar: 〈0;#Bar〉
  bar: {
    feild: 2
  }
  #Mixed: string
  Mixed: string
  mixedRec: {
    #Mixed: string
  }
  mixedRec: {
    Mixed: string
  }
}
