MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / createRecordChildrenDefs

Function createRecordChildrenDefs

addons/misra_9.py:488–522  ·  view source on GitHub ↗
(ed, var)

Source from the content-addressed store, hash-verified

486 ed.addChild(child)
487
488def createRecordChildrenDefs(ed, var):
489 valueType = ed.valueType
490 if not valueType or not valueType.typeScope:
491 return
492 if var is None:
493 return
494 typeToken = var.typeEndToken
495 while typeToken and typeToken.isName:
496 typeToken = typeToken.previous
497 if typeToken and typeToken.str == '*':
498 child = ElementDef("pointer", var.nameToken, var.nameToken.valueType)
499 ed.addChild(child)
500 return
501 child_dict = {}
502 for variable in valueType.typeScope.varlist:
503 if variable is var:
504 continue
505 child = getElementDef(variable.nameToken)
506 child_dict[variable.nameToken] = child
507 for scopes in valueType.typeScope.nestedList:
508 varscope = False
509 if scopes.nestedIn == valueType.typeScope:
510 for variable in valueType.typeScope.varlist:
511 if variable.nameToken and variable.nameToken.valueType and variable.nameToken.valueType.typeScope == scopes:
512 varscope = True
513 break
514 if not varscope:
515 ed1 = ElementDef("record", scopes.Id, valueType)
516 for variable in scopes.varlist:
517 child = getElementDef(variable.nameToken)
518 ed1.addChild(child)
519 child_dict[scopes.bodyStart] = ed1
520 sorted_keys = sorted(list(child_dict.keys()), key=lambda k: (k.file, k.linenr, k.column))
521 for _key in sorted_keys:
522 ed.addChild(child_dict[_key])
523
524
525def getElementByDesignator(ed, token):

Callers 2

getElementDefFunction · 0.85
createChildFunction · 0.85

Calls 3

addChildMethod · 0.95
ElementDefClass · 0.85
getElementDefFunction · 0.85

Tested by

no test coverage detected