From 944b819f546e0a5070331bff76de9285273ebae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Maquin?= Date: Tue, 25 Jan 2022 20:50:48 +0100 Subject: [PATCH] Fix incorrect types and add new test --- addons/inkgd/runtime/content/native_function_call.gd | 4 ++-- addons/inkgd/runtime/lists/ink_list.gd | 6 +++--- addons/inkgd/runtime/story.gd | 4 ++-- addons/inkgd/runtime/story_state.gd | 2 +- addons/inkgd/runtime/variables_state.gd | 4 ++-- test/integration/runtime/test_lists.gd | 12 ++++++++++++ 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/addons/inkgd/runtime/content/native_function_call.gd b/addons/inkgd/runtime/content/native_function_call.gd index 0a03c82a..7792ee74 100644 --- a/addons/inkgd/runtime/content/native_function_call.gd +++ b/addons/inkgd/runtime/content/native_function_call.gd @@ -193,7 +193,7 @@ func call_list_increment_operation(list_int_params: Array) -> InkValue: break if item_origin != null: - var incremented_item = item_origin.try_get_item_with_value(target_int) + var incremented_item: InkTryGetResult = item_origin.try_get_item_with_value(target_int) if incremented_item.exists: result_raw_list.set_item(incremented_item.result, target_int) @@ -223,7 +223,7 @@ func coerce_values_to_single_type(parameters_in: Array): var int_val = int(val.value_object) var list = special_case_list.value.origin_of_max_item - var item = list.try_get_item_with_value(int_val) + var item: InkTryGetResult = list.try_get_item_with_value(int_val) if item.exists: var casted_value = InkListValue.new_with_single_item(item.result, int_val) parameters_out.append(casted_value) diff --git a/addons/inkgd/runtime/lists/ink_list.gd b/addons/inkgd/runtime/lists/ink_list.gd index 88a85a19..6fae260f 100644 --- a/addons/inkgd/runtime/lists/ink_list.gd +++ b/addons/inkgd/runtime/lists/ink_list.gd @@ -76,7 +76,7 @@ func add_item(item: InkListItem) -> void: for origin in origins: if origin.name == item.origin_name: - var int_val: Dictionary = origin.try_get_value_for_item(item) + var int_val: InkTryGetResult = origin.try_get_value_for_item(item) if int_val.exists: set_item(item, int_val.result) return @@ -114,7 +114,7 @@ func add_item_by_string(item_name: String) -> void: ) return - var item: InkListItem = InkListItem.new_with_origin_name(found_list_def.name, item_name) + var item = InkListItem.new_with_origin_name(found_list_def.name, item_name) var item_val: int = found_list_def.value_for_item(item) set_item(item, item_val) @@ -132,7 +132,7 @@ func get_origin_of_max_item() -> InkListDefinition: if origins == null: return null - var max_origin_name: String = self.max_item.key.origin_name + var max_origin_name = self.max_item.key.origin_name for origin in origins: if origin.name == max_origin_name: return origin diff --git a/addons/inkgd/runtime/story.gd b/addons/inkgd/runtime/story.gd index 5373555a..9aa5c81b 100644 --- a/addons/inkgd/runtime/story.gd +++ b/addons/inkgd/runtime/story.gd @@ -1054,9 +1054,9 @@ func perform_logic_and_flow_control(content_obj: InkObject) -> bool: var generated_list_value = null # ListValue - var found_list_def = self.list_definitions.try_list_get_definition(list_name_val.value) + var found_list_def: InkTryGetResult = self.list_definitions.try_list_get_definition(list_name_val.value) if found_list_def.exists: - var found_item = found_list_def.result.try_get_item_with_value(int_val.value) + var found_item: InkTryGetResult = found_list_def.result.try_get_item_with_value(int_val.value) if found_item.exists: generated_list_value = InkListValue.new_with_single_item( found_item.result, diff --git a/addons/inkgd/runtime/story_state.gd b/addons/inkgd/runtime/story_state.gd index 8abab04c..346d7bfb 100644 --- a/addons/inkgd/runtime/story_state.gd +++ b/addons/inkgd/runtime/story_state.gd @@ -837,7 +837,7 @@ func push_evaluation_stack(obj: InkObject) -> void: raw_list.origins.clear() for n in raw_list.origin_names: - var def = self.story.list_definitions.try_list_get_definition(n) + var def: InkTryGetResult = self.story.list_definitions.try_list_get_definition(n) if raw_list.origins.find(def.result) < 0: raw_list.origins.append(def.result) diff --git a/addons/inkgd/runtime/variables_state.gd b/addons/inkgd/runtime/variables_state.gd index fcea4c4f..f215542f 100644 --- a/addons/inkgd/runtime/variables_state.gd +++ b/addons/inkgd/runtime/variables_state.gd @@ -64,7 +64,7 @@ func set_callstack(value: InkCallStack): # (String) -> Variant func get(variable_name: String): if self.patch != null: - var global = patch.try_get_global(variable_name) + var global: InkTryGetResult = patch.try_get_global(variable_name) if global.exists: return global.result.value_object @@ -278,7 +278,7 @@ func set_global(variable_name: String, value: InkObject) -> void: # Slightly different structure from upstream, since we can't use # try_get_global in the conditional. if patch != null: - var patch_value = patch.try_get_global(variable_name) + var patch_value: InkTryGetResult = patch.try_get_global(variable_name) if patch_value.exists: old_value = patch_value.result diff --git a/test/integration/runtime/test_lists.gd b/test/integration/runtime/test_lists.gd index c46e1328..7269ff5c 100644 --- a/test/integration/runtime/test_lists.gd +++ b/test/integration/runtime/test_lists.gd @@ -61,6 +61,18 @@ func test_more_list_operations(): assert_eq(story.continue_maximally(), "1\nl\nn\nl, m\nn\n") +func test_manual_item_addition(): + var story = Story.new(load_file("list_save_load")) + + var list: InkList = story.variables_state.get("l2") + + assert_eq(str(list), "x") + + var ink_list_item = InkListItem.new_with_origin_name("l2", "z") + list.add_item(ink_list_item) + + assert_eq(str(list), "x, z") + # ############################################################################ # func _prefix():