summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@qt.io>2020-04-01 15:17:11 +0200
committerDominik Holland <dominik.holland@qt.io>2020-04-02 12:02:52 +0200
commitc189b26e6ad36fde519c83a12b684916b991ee0a (patch)
tree221cdfe1731130aa7126ada4e1d65d0fd987f421 /src
parentb7bc4dc7adb541c21c49305485d1dbaa83ac6812 (diff)
downloadqtivi-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>
Diffstat (limited to 'src')
-rw-r--r--src/tools/ivigenerator/generator/filters.py15
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: