@@ -154,7 +154,9 @@ function ConvertFrom-YamlNode {
154154 continue
155155 }
156156 if ($frame.State -eq ' OmapValue' ) {
157- $frame.Result.Add ($frame.Key , $frame.Child.PSObject.Properties [' Value' ].Value)
157+ Add-YamlDictionaryEntry - Dictionary $frame.Result - Key $frame.Key `
158+ - Value $frame.Child.PSObject.Properties [' Value' ].Value `
159+ - KeyNode $frame.Node.Items [$frame.Index ].Entries[0 ].Key
158160 $frame.Index ++
159161 $frame.State = ' OmapKey'
160162 continue
@@ -188,7 +190,8 @@ function ConvertFrom-YamlNode {
188190 $frame.Key = $keyValue
189191 }
190192 if ($frame.Node.Tag -ceq ' tag:yaml.org,2002:set' ) {
191- $frame.Result.Add ($frame.Key , $null )
193+ Add-YamlDictionaryEntry - Dictionary $frame.Result - Key $frame.Key - Value $null `
194+ - KeyNode $frame.Node.Entries [$frame.Index ].Key
192195 $frame.Index ++
193196 $frame.State = ' DictionaryKey'
194197 continue
@@ -209,7 +212,9 @@ function ConvertFrom-YamlNode {
209212 continue
210213 }
211214 if ($frame.State -eq ' DictionaryValue' ) {
212- $frame.Result.Add ($frame.Key , $frame.Child.PSObject.Properties [' Value' ].Value)
215+ Add-YamlDictionaryEntry - Dictionary $frame.Result - Key $frame.Key `
216+ - Value $frame.Child.PSObject.Properties [' Value' ].Value `
217+ - KeyNode $frame.Node.Entries [$frame.Index ].Key
213218 $frame.Index ++
214219 $frame.State = ' DictionaryKey'
215220 continue
@@ -244,6 +249,13 @@ function ConvertFrom-YamlNode {
244249 ' This mapping key cannot be represented as a PSCustomObject property. Use -AsHashtable.'
245250 ))
246251 }
252+ if (Test-YamlReservedPropertyName - Name $frame.Key ) {
253+ $keyNode = $frame.Node.Entries [$frame.Index ].Key
254+ throw (New-YamlException - Start $keyNode.Start - End $keyNode.End `
255+ - ErrorId ' YamlPropertyNameReserved' - Message (
256+ " The mapping key '$ ( $frame.Key ) ' is reserved by PowerShell ETS. Use -AsHashtable."
257+ ))
258+ }
247259 if (-not $frame.Names.Add ($frame.Key )) {
248260 $keyNode = $frame.Node.Entries [$frame.Index ].Key
249261 throw (New-YamlException - Start $keyNode.Start - End $keyNode.End `
0 commit comments