diff options
author | Dominik Holland <dominik.holland@qt.io> | 2020-04-01 15:17:11 +0200 |
---|---|---|
committer | Dominik Holland <dominik.holland@qt.io> | 2020-04-02 12:02:52 +0200 |
commit | c189b26e6ad36fde519c83a12b684916b991ee0a (patch) | |
tree | 221cdfe1731130aa7126ada4e1d65d0fd987f421 | |
parent | b7bc4dc7adb541c21c49305485d1dbaa83ac6812 (diff) | |
download | qtivi-c189b26e6ad36fde519c83a12b684916b991ee0a.tar.gz |
ivigenerator: Improve the errors for incorrect simulation data in annotations
The error message give now an indication what symbol type the simulationData
is intended for and also give more details on what is wrong.
Change-Id: I26940d8248cf3f8b4caaf02552112894ad369dd5
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
-rw-r--r-- | src/tools/ivigenerator/generator/filters.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/tools/ivigenerator/generator/filters.py b/src/tools/ivigenerator/generator/filters.py index b7ee9ff..7e7c3d5 100644 --- a/src/tools/ivigenerator/generator/filters.py +++ b/src/tools/ivigenerator/generator/filters.py @@ -167,17 +167,17 @@ def default_value_helper(symbol, res): t = symbol.type if t.is_struct: if not (isinstance(res, dict) or isinstance(res, list)): - jinja_error('default_value: value in annotation is supposed to be a dict or list') + jinja_error('default_value: value in annotation for symbol {0} is supposed to be a dict or list'.format(symbol.qualified_name)) if len(res) != len(t.reference.fields): - jinja_error('default_value: argument count in annotation and number of struct fields ' - 'does not match') + jinja_error('default_value: argument count in annotation for symbol {0} and number of struct fields ' + 'does not match: Expected {1} instead of {2}'.format(symbol.qualified_name, len(t.reference.fields), len(res))) values = [] for idx, property in enumerate(res): values.append(default_value_helper(list(t.reference.fields)[idx], property)) return '{0}({{{1}}})'.format(t.type, ', '.join(values)) if t.is_model or t.is_list: if not isinstance(res, list): - jinja_error('default_value: value in annotation is supposed to be a list') + jinja_error('default_value: value in annotation for symbol {0} is supposed to be a list'.format(symbol.qualified_name)) row_string = '' if t.nested.is_struct and t.is_list: row_string = ', '.join(('QVariant::fromValue({0})'.format(default_value_helper(t.nested, row))) for row in res) @@ -458,10 +458,11 @@ def symbolToJson(data, symbol): if symbol.type.is_struct: t = symbol.type if not (isinstance(data, dict) or isinstance(data, list)): - jinja_error('simulationData: value in annotation is supposed to be a dict or list') + jinja_error('simulationData: value in annotation for symbol {0} is supposed to be a dict or list'.format(symbol.qualified_name)) if len(data) != len(t.reference.fields): - jinja_error('simulationData: argument count in annotation and number of struct fields ' - 'does not match') + print(len(data), len(t.reference.fields)) + jinja_error('simulationData: argument count in annotation for symbol {0} and number of struct fields ' + 'does not match: Expected {1} instead of {2}'.format(symbol.qualified_name, len(t.reference.fields), len(data))) newList = list(symbolToJson(property, list(t.reference.fields)[idx]) for idx, property in enumerate(data)) return {"type": symbol.type.name, "value": newList} elif symbol.type.is_enum or symbol.type.is_flag: |