@@ -396,17 +396,17 @@ export default async function validateModel (apiModel: model.Model, restSpec: Ma
396396 const inheritedProps = inheritedProperties ( typeDef )
397397
398398 context . push ( 'path' )
399- validateProperties ( typeDef . path , openGenerics , inheritedProps )
399+ validateProperties ( fqn ( typeDef . name ) , typeDef . path , openGenerics , inheritedProps )
400400 context . pop ( )
401401
402402 context . push ( 'query' )
403- validateProperties ( typeDef . query , openGenerics , inheritedProps )
403+ validateProperties ( fqn ( typeDef . name ) , typeDef . query , openGenerics , inheritedProps )
404404 context . pop ( )
405405
406406 context . push ( 'body' )
407407 switch ( typeDef . body . kind ) {
408408 case 'properties' :
409- validateProperties ( typeDef . body . properties , openGenerics , inheritedProps )
409+ validateProperties ( fqn ( typeDef . name ) , typeDef . body . properties , openGenerics , inheritedProps )
410410 break
411411 case 'value' :
412412 validateValueOf ( typeDef . body . value , openGenerics )
@@ -433,7 +433,7 @@ export default async function validateModel (apiModel: model.Model, restSpec: Ma
433433
434434 switch ( typeDef . body . kind ) {
435435 case 'properties' :
436- validateProperties ( typeDef . body . properties , openGenerics , inheritedProperties ( typeDef ) )
436+ validateProperties ( fqn ( typeDef . name ) , typeDef . body . properties , openGenerics , inheritedProperties ( typeDef ) )
437437 break
438438 case 'value' :
439439 validateValueOf ( typeDef . body . value , openGenerics )
@@ -507,7 +507,7 @@ export default async function validateModel (apiModel: model.Model, restSpec: Ma
507507
508508 validateInherits ( typeDef . inherits , openGenerics )
509509 validateBehaviors ( typeDef , openGenerics )
510- validateProperties ( typeDef . properties , openGenerics , inheritedProperties ( typeDef ) )
510+ validateProperties ( fqn ( typeDef . name ) , typeDef . properties , openGenerics , inheritedProperties ( typeDef ) )
511511
512512 if ( typeDef . variants ?. kind === 'container' ) {
513513 const variants = typeDef . properties . filter ( prop => ! ( prop . containerProperty ?? false ) )
@@ -747,7 +747,7 @@ export default async function validateModel (apiModel: model.Model, restSpec: Ma
747747 return false
748748 }
749749
750- function validateProperties ( props : model . Property [ ] , openGenerics : Set < string > , inheritedProperties : Set < string > ) : void {
750+ function validateProperties ( type : string , props : model . Property [ ] , openGenerics : Set < string > , inheritedProperties : Set < string > ) : void {
751751 const allIdentifiers = new Set < string > ( )
752752 const allNames = new Set < string > ( )
753753
@@ -773,6 +773,13 @@ export default async function validateModel (apiModel: model.Model, restSpec: Ma
773773 }
774774
775775 context . push ( `Property '${ prop . name } '` )
776+
777+ if ( prop . type . kind === 'dictionary_of' && prop . type . ordered ) {
778+ if ( prop . name !== 'aggregations' ) {
779+ modelError ( `OrderedDictionary can not be used for property '${ prop . name } ' on type '${ type } '.` )
780+ }
781+ }
782+
776783 validateValueOf ( prop . type , openGenerics )
777784 validateValueOfJsonEvents ( prop . type )
778785 context . pop ( )
0 commit comments