summary refs log tree commit diff
path: root/tests/pracownia2
diff options
context:
space:
mode:
authorPaweł Dybiec <pdybiec@stud.cs.uni.wroc.pl>2018-12-09 18:57:17 +0100
committerPaweł Dybiec <pdybiec@stud.cs.uni.wroc.pl>2018-12-09 18:57:17 +0100
commit21952240e9a785713351ca336e11df498480f905 (patch)
treed61e33c910adae94b5cde0b2d3ffee13aa8062ee /tests/pracownia2
parentInitial code for translator (diff)
Tests
Diffstat (limited to 'tests/pracownia2')
-rw-r--r--tests/pracownia2/error/000_length_as_boolA.xi6
-rw-r--r--tests/pracownia2/error/001_decl_curly_bool.xi6
-rw-r--r--tests/pracownia2/error/002_init2_boolA_fst_only.xi7
-rw-r--r--tests/pracownia2/error/003_comp_gt_intA_boolA.xi7
-rw-r--r--tests/pracownia2/error/004_formal_arg_initialized_array.xi5
-rw-r--r--tests/pracownia2/error/005_length_bool.xi6
-rw-r--r--tests/pracownia2/error/006_decl_and_def.xi9
-rw-r--r--tests/pracownia2/error/007_function_used_as_procedure.xi9
-rw-r--r--tests/pracownia2/error/008_comp_le_bool.xi7
-rw-r--r--tests/pracownia2/error/009_shadowing_decl_return.xi5
-rw-r--r--tests/pracownia2/error/010_def_and_decl.xi9
-rw-r--r--tests/pracownia2/error/011_procedure_used_as_function_init.xi8
-rw-r--r--tests/pracownia2/error/012_comp_le_intA_boolA.xi7
-rw-r--r--tests/pracownia2/error/013_string_boolA.xi7
-rw-r--r--tests/pracownia2/error/014_if_cond_boolA.xi7
-rw-r--r--tests/pracownia2/error/015_function_missing_return_if.xi7
-rw-r--r--tests/pracownia2/error/016_formal_pars_decl.xi4
-rw-r--r--tests/pracownia2/error/017_int_boolA.xi7
-rw-r--r--tests/pracownia2/error/018_decl_curly_int.xi6
-rw-r--r--tests/pracownia2/error/019_multi_return_type_initialized_array.xi4
-rw-r--r--tests/pracownia2/error/020_procedure_used_as_function_ifcond.xi9
-rw-r--r--tests/pracownia2/error/021_expected_2_given3.xi8
-rw-r--r--tests/pracownia2/error/022_function_missing_return_ifelse_else_return.xi9
-rw-r--r--tests/pracownia2/error/023_bool_as_A.xi7
-rw-r--r--tests/pracownia2/error/024_char_intA.xi7
-rw-r--r--tests/pracownia2/error/025_rem_trueture.xi7
-rw-r--r--tests/pracownia2/error/026_function_missing_return_ifelse.xi8
-rw-r--r--tests/pracownia2/error/027_boolA_index.xi7
-rw-r--r--tests/pracownia2/error/028_shadowing_decl_more_fpars.xi5
-rw-r--r--tests/pracownia2/error/029_expected_2_given1_joker.xi8
-rw-r--r--tests/pracownia2/error/030_assign_curly_int.xi7
-rw-r--r--tests/pracownia2/error/031_int_as_A.xi7
-rw-r--r--tests/pracownia2/error/032_comp_gt_bool.xi7
-rw-r--r--tests/pracownia2/error/033_minus_trueture.xi7
-rw-r--r--tests/pracownia2/error/034_ifelse_copnd_boolA.xi8
-rw-r--r--tests/pracownia2/error/035_procedure_too_many_args_expect1.xi8
-rw-r--r--tests/pracownia2/error/036_comp_lt_boolA.xi7
-rw-r--r--tests/pracownia2/error/037_samedecl.xi6
-rw-r--r--tests/pracownia2/error/038_string_intAA.xi7
-rw-r--r--tests/pracownia2/error/039_init_bool.xi7
-rw-r--r--tests/pracownia2/error/040_expected_2_given0.xi8
-rw-r--r--tests/pracownia2/error/041_comp_gt_boolA.xi7
-rw-r--r--tests/pracownia2/error/042_init2_intA_fst.xi7
-rw-r--r--tests/pracownia2/error/043_init2_bool_snd.xi7
-rw-r--r--tests/pracownia2/error/044_assign_curly_bool.xi7
-rw-r--r--tests/pracownia2/error/045_bool_index.xi7
-rw-r--r--tests/pracownia2/error/046_length_as_bool.xi6
-rw-r--r--tests/pracownia2/error/047_init2_boolA_fst.xi7
-rw-r--r--tests/pracownia2/error/048_false_intA.xi7
-rw-r--r--tests/pracownia2/error/049_shadowing_decl_return_more.xi5
-rw-r--r--tests/pracownia2/error/050_function_missing_return_if_return.xi8
-rw-r--r--tests/pracownia2/error/051_procedure_used_as_function_return.xi8
-rw-r--r--tests/pracownia2/error/052_function_missing_return.xi5
-rw-r--r--tests/pracownia2/error/053_multi_return_type_initialized_array_multidim.xi4
-rw-r--r--tests/pracownia2/error/054_shadowing_decl_return_less.xi5
-rw-r--r--tests/pracownia2/error/055_initialized_array.xi9
-rw-r--r--tests/pracownia2/error/056_false_int.xi7
-rw-r--r--tests/pracownia2/error/057_false_boolA.xi7
-rw-r--r--tests/pracownia2/error/058_formal_pars_def.xi6
-rw-r--r--tests/pracownia2/error/059_char_bool.xi7
-rw-r--r--tests/pracownia2/error/060_procedure_too_less_args_expect2.xi8
-rw-r--r--tests/pracownia2/error/061_while_cond_int.xi7
-rw-r--r--tests/pracownia2/error/062_shadowing_decl_less_fpars.xi5
-rw-r--r--tests/pracownia2/error/063_comp_lt_bool.xi7
-rw-r--r--tests/pracownia2/error/064_procedure_used_as_function_ifelsecond.xi10
-rw-r--r--tests/pracownia2/error/065_comp_ge_boolA.xi7
-rw-r--r--tests/pracownia2/error/066_initsize_wrong_place.xi6
-rw-r--r--tests/pracownia2/error/067_comp_ge_boolA.xi7
-rw-r--r--tests/pracownia2/error/068_formal_pars_decl_other_type.xi4
-rw-r--r--tests/pracownia2/error/069_int_bool.xi7
-rw-r--r--tests/pracownia2/error/070_char_boolA.xi7
-rw-r--r--tests/pracownia2/error/071_procedure_used_as_function_whilecond.xi9
-rw-r--r--tests/pracownia2/error/072_if_cond_int.xi7
-rw-r--r--tests/pracownia2/error/073_comp_le_boolA.xi7
-rw-r--r--tests/pracownia2/error/074_expecting2_given1.xi6
-rw-r--r--tests/pracownia2/error/075_shadowing_decl_return_type.xi5
-rw-r--r--tests/pracownia2/error/076_intA_index.xi7
-rw-r--r--tests/pracownia2/error/077_procedure_too_many_args_expect0.xi8
-rw-r--r--tests/pracownia2/error/078_true_int.xi7
-rw-r--r--tests/pracownia2/error/079_comp_gt_boolA_intA.xi7
-rw-r--r--tests/pracownia2/error/080_int_intA.xi7
-rw-r--r--tests/pracownia2/error/081_procedure_too_less_args_expect1.xi8
-rw-r--r--tests/pracownia2/error/082_function_missing_return_while_return.xi8
-rw-r--r--tests/pracownia2/error/083_shadowing_decl_other_fpartype.xi5
-rw-r--r--tests/pracownia2/error/084_init2_boolA_snd.xi7
-rw-r--r--tests/pracownia2/error/085_expecting2_given_proc.xi8
-rw-r--r--tests/pracownia2/error/086_function_missing_return_ifelse_then_return.xi9
-rw-r--r--tests/pracownia2/error/087_comp_ge_bool.xi7
-rw-r--r--tests/pracownia2/error/088_init2_intA_fst_only.xi7
-rw-r--r--tests/pracownia2/error/089_comp_le_boolA_intA.xi7
-rw-r--r--tests/pracownia2/error/090_expected_2_given3_joker.xi8
-rw-r--r--tests/pracownia2/error/091_function_missing_return_while_simple.xi7
-rw-r--r--tests/pracownia2/error/092_expected_2_given1.xi8
-rw-r--r--tests/pracownia2/error/093_init2_intA_snd.xi7
-rw-r--r--tests/pracownia2/error/094_while_cond_boolA.xi7
-rw-r--r--tests/pracownia2/error/095_mult_trueture.xi7
-rw-r--r--tests/pracownia2/error/096_procedure_used_in_return_in_procedure.xi9
-rw-r--r--tests/pracownia2/error/097_init2_bool_fst_only.xi7
-rw-r--r--tests/pracownia2/error/098_true_boolA.xi7
-rw-r--r--tests/pracownia2/error/099_variables_nested_scope.xi9
-rw-r--r--tests/pracownia2/error/100_string_int.xi7
-rw-r--r--tests/pracownia2/error/101_init_intA.xi7
-rw-r--r--tests/pracownia2/error/102_ifelse_cond_int.xi7
-rw-r--r--tests/pracownia2/error/103_comp_gt_boolA.xi7
-rw-r--r--tests/pracownia2/error/104_plus_trueture.xi7
-rw-r--r--tests/pracownia2/error/105_true_intA.xi7
-rw-r--r--tests/pracownia2/error/106_length_as_intA.xi6
-rw-r--r--tests/pracownia2/error/107_variables_nested_scope_ifelse.xi10
-rw-r--r--tests/pracownia2/error/108_bool_as_A_from_A.xi6
-rw-r--r--tests/pracownia2/error/109_return_type_initialized_array.xi4
-rw-r--r--tests/pracownia2/error/110_expecting2_given3.xi6
-rw-r--r--tests/pracownia2/error/111_variables_nested_scope_while.xi9
-rw-r--r--tests/pracownia2/error/112_comp_lt_intA_boolA.xi7
-rw-r--r--tests/pracownia2/error/113_missing_multireturn.xi5
-rw-r--r--tests/pracownia2/error/114_return_multireturn_func_not_allowed.xi8
-rw-r--r--tests/pracownia2/error/115_expecting2_given0.xi6
-rw-r--r--tests/pracownia2/error/116_length_int.xi6
-rw-r--r--tests/pracownia2/error/117_comp_le_boolA.xi7
-rw-r--r--tests/pracownia2/error/118_variables_nested_scope_if.xi9
-rw-r--r--tests/pracownia2/error/119_comp_lt_boolA_intA.xi7
-rw-r--r--tests/pracownia2/error/120_formal_pars_def_other_type.xi6
-rw-r--r--tests/pracownia2/error/121_comp_ge_boolA_intA.xi7
-rw-r--r--tests/pracownia2/error/122_init_boolA.xi7
-rw-r--r--tests/pracownia2/error/123_comp_ge_intA_boolA.xi7
-rw-r--r--tests/pracownia2/error/124_init2_bool_fst.xi7
-rw-r--r--tests/pracownia2/error/125_expected_2_given0_joker.xi8
-rw-r--r--tests/pracownia2/error/126_return_type_initialized_array_multidim.xi4
-rw-r--r--tests/pracownia2/error/127_formal_arg_initialized_array_multidim.xi5
-rw-r--r--tests/pracownia2/error/128_div_trueture.xi7
-rw-r--r--tests/pracownia2/error/129_string_bool.xi7
-rw-r--r--tests/pracownia2/error/130_comp_lt_boolA.xi7
-rw-r--r--tests/pracownia2/error/131_variables_same_scope.xi7
-rw-r--r--tests/pracownia2/ok/000_without_expectation_concat_second_magic.xi6
-rw-r--r--tests/pracownia2/ok/001_ifelse_on_pred.xi10
-rw-r--r--tests/pracownia2/ok/002_fetch_int.xi7
-rw-r--r--tests/pracownia2/ok/003_with_expectation_concat_second_empty.xi6
-rw-r--r--tests/pracownia2/ok/004_with_expectation_empty_curly.xi7
-rw-r--r--tests/pracownia2/ok/005_with_expectation_concat_second_magic.xi6
-rw-r--r--tests/pracownia2/ok/006_if_on_literal.xi8
-rw-r--r--tests/pracownia2/ok/007_without_expectation_concat_second_weird.xi6
-rw-r--r--tests/pracownia2/ok/008_fetch_fetch.xi7
-rw-r--r--tests/pracownia2/ok/009_while_on_literal.xi8
-rw-r--r--tests/pracownia2/ok/010_with_expectation_concat_first_weird.xi6
-rw-r--r--tests/pracownia2/ok/011_simple_length.xi6
-rw-r--r--tests/pracownia2/ok/012_with_expectation_concat_first_magic.xi6
-rw-r--r--tests/pracownia2/ok/013_without_expectation_concat_second_empty.xi6
-rw-r--r--tests/pracownia2/ok/014_if_on_var.xi8
-rw-r--r--tests/pracownia2/ok/015_with_expectation_concat_second_weird.xi6
-rw-r--r--tests/pracownia2/ok/016_with_expectation_a_lot_of_magic_int.xi40
-rw-r--r--tests/pracownia2/ok/017_ifelse_on_and.xi9
-rw-r--r--tests/pracownia2/ok/018_if_on_pred.xi9
-rw-r--r--tests/pracownia2/ok/019_ifelse_on_or.xi9
-rw-r--r--tests/pracownia2/ok/020_with_expectation_concat_both_empty.xi6
-rw-r--r--tests/pracownia2/ok/021_mutualrec.xi12
-rw-r--r--tests/pracownia2/ok/022_int.xi10
-rw-r--r--tests/pracownia2/ok/023_with_expectation_concat_both_magic.xi6
-rw-r--r--tests/pracownia2/ok/024_store_bool.xi6
-rw-r--r--tests/pracownia2/ok/025_with_expectation_concat_magic_empty.xi6
-rw-r--r--tests/pracownia2/ok/026_length_string.xi6
-rw-r--r--tests/pracownia2/ok/027_with_expectation_curly_elems.xi7
-rw-r--r--tests/pracownia2/ok/028_while_on_and.xi8
-rw-r--r--tests/pracownia2/ok/029_with_expectation_concat_empty_weird.xi6
-rw-r--r--tests/pracownia2/ok/030_intA.xi8
-rw-r--r--tests/pracownia2/ok/031_if_on_or.xi8
-rw-r--r--tests/pracownia2/ok/032_with_expectation_first_weird.xi6
-rw-r--r--tests/pracownia2/ok/033_with_expectation_concat_weird_empty.xi6
-rw-r--r--tests/pracownia2/ok/034_bool.xi8
-rw-r--r--tests/pracownia2/ok/035_store_store.xi6
-rw-r--r--tests/pracownia2/ok/036_ifelse_on_var.xi9
-rw-r--r--tests/pracownia2/ok/037_with_expectation_concat.xi6
-rw-r--r--tests/pracownia2/ok/038_length_curly.xi6
-rw-r--r--tests/pracownia2/ok/039_if_on_and.xi8
-rw-r--r--tests/pracownia2/ok/040_while_on_var.xi8
-rw-r--r--tests/pracownia2/ok/041_without_expectation_concat.xi6
-rw-r--r--tests/pracownia2/ok/042_init.xi6
-rw-r--r--tests/pracownia2/ok/043_without_expectation_second_weird.xi6
-rw-r--r--tests/pracownia2/ok/044_while_on_or.xi8
-rw-r--r--tests/pracownia2/ok/045_with_expectation_second_weird.xi6
-rw-r--r--tests/pracownia2/ok/046_with_expectation_concat_first_empty.xi6
-rw-r--r--tests/pracownia2/ok/047_with_expectation_concat_empty_magic.xi6
-rw-r--r--tests/pracownia2/ok/048_noconflict_other_scopes.xi11
-rw-r--r--tests/pracownia2/ok/049_ifelse_on_literal.xi9
-rw-r--r--tests/pracownia2/ok/050_without_expectation_curly_elems.xi7
-rw-r--r--tests/pracownia2/ok/051_while_on_pred.xi9
-rw-r--r--tests/pracownia2/ok/052_with_expectation_a_lot_of_magic_bool.xi60
-rw-r--r--tests/pracownia2/ok/053_with_expectation_concat_both_weird.xi6
186 files changed, 1391 insertions, 0 deletions
diff --git a/tests/pracownia2/error/000_length_as_boolA.xi b/tests/pracownia2/error/000_length_as_boolA.xi
new file mode 100644
index 0000000..55d1312
--- /dev/null
+++ b/tests/pracownia2/error/000_length_as_boolA.xi
@@ -0,0 +1,6 @@
+test(x:int[]):bool[]
+{
+    return length(x)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/001_decl_curly_bool.xi b/tests/pracownia2/error/001_decl_curly_bool.xi
new file mode 100644
index 0000000..92b81d2
--- /dev/null
+++ b/tests/pracownia2/error/001_decl_curly_bool.xi
@@ -0,0 +1,6 @@
+test()
+{
+    i:bool = {}
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/002_init2_boolA_fst_only.xi b/tests/pracownia2/error/002_init2_boolA_fst_only.xi
new file mode 100644
index 0000000..c1fdfd3
--- /dev/null
+++ b/tests/pracownia2/error/002_init2_boolA_fst_only.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool[];
+    a:int[i][];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/003_comp_gt_intA_boolA.xi b/tests/pracownia2/error/003_comp_gt_intA_boolA.xi
new file mode 100644
index 0000000..172d5bc
--- /dev/null
+++ b/tests/pracownia2/error/003_comp_gt_intA_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:bool[]):bool
+{
+  return a > b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/004_formal_arg_initialized_array.xi b/tests/pracownia2/error/004_formal_arg_initialized_array.xi
new file mode 100644
index 0000000..c234a52
--- /dev/null
+++ b/tests/pracownia2/error/004_formal_arg_initialized_array.xi
@@ -0,0 +1,5 @@
+test(x:int[43])
+{
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/005_length_bool.xi b/tests/pracownia2/error/005_length_bool.xi
new file mode 100644
index 0000000..27324e4
--- /dev/null
+++ b/tests/pracownia2/error/005_length_bool.xi
@@ -0,0 +1,6 @@
+test(x:bool):int
+{
+    return length(x)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/006_decl_and_def.xi b/tests/pracownia2/error/006_decl_and_def.xi
new file mode 100644
index 0000000..4087f76
--- /dev/null
+++ b/tests/pracownia2/error/006_decl_and_def.xi
@@ -0,0 +1,9 @@
+f(x:int):bool
+
+f(x:int):bool
+{
+    return true
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/007_function_used_as_procedure.xi b/tests/pracownia2/error/007_function_used_as_procedure.xi
new file mode 100644
index 0000000..bcf00cc
--- /dev/null
+++ b/tests/pracownia2/error/007_function_used_as_procedure.xi
@@ -0,0 +1,9 @@
+f():int
+
+g()
+{
+    f()
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/008_comp_le_bool.xi b/tests/pracownia2/error/008_comp_le_bool.xi
new file mode 100644
index 0000000..d4d45f1
--- /dev/null
+++ b/tests/pracownia2/error/008_comp_le_bool.xi
@@ -0,0 +1,7 @@
+test(a:bool, b:bool):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/009_shadowing_decl_return.xi b/tests/pracownia2/error/009_shadowing_decl_return.xi
new file mode 100644
index 0000000..66fe649
--- /dev/null
+++ b/tests/pracownia2/error/009_shadowing_decl_return.xi
@@ -0,0 +1,5 @@
+f(x:int)
+f(x:int) : int
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/010_def_and_decl.xi b/tests/pracownia2/error/010_def_and_decl.xi
new file mode 100644
index 0000000..f89d6bf
--- /dev/null
+++ b/tests/pracownia2/error/010_def_and_decl.xi
@@ -0,0 +1,9 @@
+f(x:int):bool
+{
+    return true
+}
+
+f(x:int):bool
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/011_procedure_used_as_function_init.xi b/tests/pracownia2/error/011_procedure_used_as_function_init.xi
new file mode 100644
index 0000000..627c357
--- /dev/null
+++ b/tests/pracownia2/error/011_procedure_used_as_function_init.xi
@@ -0,0 +1,8 @@
+f()
+
+g()
+{
+    x:int = f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/012_comp_le_intA_boolA.xi b/tests/pracownia2/error/012_comp_le_intA_boolA.xi
new file mode 100644
index 0000000..333e826
--- /dev/null
+++ b/tests/pracownia2/error/012_comp_le_intA_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:bool[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/013_string_boolA.xi b/tests/pracownia2/error/013_string_boolA.xi
new file mode 100644
index 0000000..55510e0
--- /dev/null
+++ b/tests/pracownia2/error/013_string_boolA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool = "Polonia"
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/014_if_cond_boolA.xi b/tests/pracownia2/error/014_if_cond_boolA.xi
new file mode 100644
index 0000000..b8c0f8d
--- /dev/null
+++ b/tests/pracownia2/error/014_if_cond_boolA.xi
@@ -0,0 +1,7 @@
+test(x:bool[])
+{
+    if x {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/015_function_missing_return_if.xi b/tests/pracownia2/error/015_function_missing_return_if.xi
new file mode 100644
index 0000000..403e9ef
--- /dev/null
+++ b/tests/pracownia2/error/015_function_missing_return_if.xi
@@ -0,0 +1,7 @@
+f(x:bool):int
+{
+    if (x) {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/016_formal_pars_decl.xi b/tests/pracownia2/error/016_formal_pars_decl.xi
new file mode 100644
index 0000000..8f01fdf
--- /dev/null
+++ b/tests/pracownia2/error/016_formal_pars_decl.xi
@@ -0,0 +1,4 @@
+test(x:int, x:int, y:bool)
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/017_int_boolA.xi b/tests/pracownia2/error/017_int_boolA.xi
new file mode 100644
index 0000000..3e1f998
--- /dev/null
+++ b/tests/pracownia2/error/017_int_boolA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool[] = 42
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/018_decl_curly_int.xi b/tests/pracownia2/error/018_decl_curly_int.xi
new file mode 100644
index 0000000..060f89f
--- /dev/null
+++ b/tests/pracownia2/error/018_decl_curly_int.xi
@@ -0,0 +1,6 @@
+test()
+{
+    i:int = {}
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/019_multi_return_type_initialized_array.xi b/tests/pracownia2/error/019_multi_return_type_initialized_array.xi
new file mode 100644
index 0000000..c4d820d
--- /dev/null
+++ b/tests/pracownia2/error/019_multi_return_type_initialized_array.xi
@@ -0,0 +1,4 @@
+test(): bool[], int[42], bool[][]
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/020_procedure_used_as_function_ifcond.xi b/tests/pracownia2/error/020_procedure_used_as_function_ifcond.xi
new file mode 100644
index 0000000..46170b7
--- /dev/null
+++ b/tests/pracownia2/error/020_procedure_used_as_function_ifcond.xi
@@ -0,0 +1,9 @@
+f()
+
+g()
+{
+    if f() {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/021_expected_2_given3.xi b/tests/pracownia2/error/021_expected_2_given3.xi
new file mode 100644
index 0000000..2515d4c
--- /dev/null
+++ b/tests/pracownia2/error/021_expected_2_given3.xi
@@ -0,0 +1,8 @@
+f(): int, int, int
+
+g()
+{
+    x:int, y:int = f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/022_function_missing_return_ifelse_else_return.xi b/tests/pracownia2/error/022_function_missing_return_ifelse_else_return.xi
new file mode 100644
index 0000000..ecaab14
--- /dev/null
+++ b/tests/pracownia2/error/022_function_missing_return_ifelse_else_return.xi
@@ -0,0 +1,9 @@
+f(x:bool):int
+{
+    if (x) {
+    } else {
+        return 0
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/023_bool_as_A.xi b/tests/pracownia2/error/023_bool_as_A.xi
new file mode 100644
index 0000000..bb38907
--- /dev/null
+++ b/tests/pracownia2/error/023_bool_as_A.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool;
+    x[0] = 1;
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/024_char_intA.xi b/tests/pracownia2/error/024_char_intA.xi
new file mode 100644
index 0000000..d60f490
--- /dev/null
+++ b/tests/pracownia2/error/024_char_intA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int[] = 'X'
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/025_rem_trueture.xi b/tests/pracownia2/error/025_rem_trueture.xi
new file mode 100644
index 0000000..581d5c6
--- /dev/null
+++ b/tests/pracownia2/error/025_rem_trueture.xi
@@ -0,0 +1,7 @@
+f():bool
+{
+    return true % true
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/026_function_missing_return_ifelse.xi b/tests/pracownia2/error/026_function_missing_return_ifelse.xi
new file mode 100644
index 0000000..607c154
--- /dev/null
+++ b/tests/pracownia2/error/026_function_missing_return_ifelse.xi
@@ -0,0 +1,8 @@
+f(x:bool):int
+{
+    if (x) {
+    } else {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/027_boolA_index.xi b/tests/pracownia2/error/027_boolA_index.xi
new file mode 100644
index 0000000..e2a257f
--- /dev/null
+++ b/tests/pracownia2/error/027_boolA_index.xi
@@ -0,0 +1,7 @@
+test(a:bool[])
+{
+    i:bool[];
+    a[i] = true;
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/028_shadowing_decl_more_fpars.xi b/tests/pracownia2/error/028_shadowing_decl_more_fpars.xi
new file mode 100644
index 0000000..f4dcf00
--- /dev/null
+++ b/tests/pracownia2/error/028_shadowing_decl_more_fpars.xi
@@ -0,0 +1,5 @@
+f(x:int, y:int)
+f(x:int, y:int, z:bool)
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/029_expected_2_given1_joker.xi b/tests/pracownia2/error/029_expected_2_given1_joker.xi
new file mode 100644
index 0000000..0fd29ac
--- /dev/null
+++ b/tests/pracownia2/error/029_expected_2_given1_joker.xi
@@ -0,0 +1,8 @@
+f(): int
+
+g()
+{
+    x:int, _ = f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/030_assign_curly_int.xi b/tests/pracownia2/error/030_assign_curly_int.xi
new file mode 100644
index 0000000..e40ff75
--- /dev/null
+++ b/tests/pracownia2/error/030_assign_curly_int.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:int;
+    i = {}
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/031_int_as_A.xi b/tests/pracownia2/error/031_int_as_A.xi
new file mode 100644
index 0000000..30d623d
--- /dev/null
+++ b/tests/pracownia2/error/031_int_as_A.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int;
+    x[0] = 1;
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/032_comp_gt_bool.xi b/tests/pracownia2/error/032_comp_gt_bool.xi
new file mode 100644
index 0000000..3600828
--- /dev/null
+++ b/tests/pracownia2/error/032_comp_gt_bool.xi
@@ -0,0 +1,7 @@
+test(a:bool, b:bool):bool
+{
+  return a > b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/033_minus_trueture.xi b/tests/pracownia2/error/033_minus_trueture.xi
new file mode 100644
index 0000000..9798982
--- /dev/null
+++ b/tests/pracownia2/error/033_minus_trueture.xi
@@ -0,0 +1,7 @@
+f():bool
+{
+    return true - true
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/034_ifelse_copnd_boolA.xi b/tests/pracownia2/error/034_ifelse_copnd_boolA.xi
new file mode 100644
index 0000000..5f31797
--- /dev/null
+++ b/tests/pracownia2/error/034_ifelse_copnd_boolA.xi
@@ -0,0 +1,8 @@
+test(x:bool[])
+{
+    if x {
+    } else {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/035_procedure_too_many_args_expect1.xi b/tests/pracownia2/error/035_procedure_too_many_args_expect1.xi
new file mode 100644
index 0000000..a46d1be
--- /dev/null
+++ b/tests/pracownia2/error/035_procedure_too_many_args_expect1.xi
@@ -0,0 +1,8 @@
+f(x:int)
+
+g()
+{
+    f(1, 2)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/036_comp_lt_boolA.xi b/tests/pracownia2/error/036_comp_lt_boolA.xi
new file mode 100644
index 0000000..c55d624
--- /dev/null
+++ b/tests/pracownia2/error/036_comp_lt_boolA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:bool[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/037_samedecl.xi b/tests/pracownia2/error/037_samedecl.xi
new file mode 100644
index 0000000..323ef39
--- /dev/null
+++ b/tests/pracownia2/error/037_samedecl.xi
@@ -0,0 +1,6 @@
+f(x:int):bool
+
+f(x:int):bool
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/038_string_intAA.xi b/tests/pracownia2/error/038_string_intAA.xi
new file mode 100644
index 0000000..55510e0
--- /dev/null
+++ b/tests/pracownia2/error/038_string_intAA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool = "Polonia"
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/039_init_bool.xi b/tests/pracownia2/error/039_init_bool.xi
new file mode 100644
index 0000000..52bbf58
--- /dev/null
+++ b/tests/pracownia2/error/039_init_bool.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool;
+    a:int[i];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/040_expected_2_given0.xi b/tests/pracownia2/error/040_expected_2_given0.xi
new file mode 100644
index 0000000..1abe71d
--- /dev/null
+++ b/tests/pracownia2/error/040_expected_2_given0.xi
@@ -0,0 +1,8 @@
+f()
+
+g()
+{
+    x:int, y:int = f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/041_comp_gt_boolA.xi b/tests/pracownia2/error/041_comp_gt_boolA.xi
new file mode 100644
index 0000000..c22e76a
--- /dev/null
+++ b/tests/pracownia2/error/041_comp_gt_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:int[]):bool
+{
+  return a > b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/042_init2_intA_fst.xi b/tests/pracownia2/error/042_init2_intA_fst.xi
new file mode 100644
index 0000000..a28d54b
--- /dev/null
+++ b/tests/pracownia2/error/042_init2_intA_fst.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:int[];
+    a:int[i][42];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/043_init2_bool_snd.xi b/tests/pracownia2/error/043_init2_bool_snd.xi
new file mode 100644
index 0000000..1c84359
--- /dev/null
+++ b/tests/pracownia2/error/043_init2_bool_snd.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool;
+    a:int[42][i];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/044_assign_curly_bool.xi b/tests/pracownia2/error/044_assign_curly_bool.xi
new file mode 100644
index 0000000..dabe469
--- /dev/null
+++ b/tests/pracownia2/error/044_assign_curly_bool.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool;
+    i = {}
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/045_bool_index.xi b/tests/pracownia2/error/045_bool_index.xi
new file mode 100644
index 0000000..17133eb
--- /dev/null
+++ b/tests/pracownia2/error/045_bool_index.xi
@@ -0,0 +1,7 @@
+test(a:bool[])
+{
+    i:bool;
+    a[i] = true;
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/046_length_as_bool.xi b/tests/pracownia2/error/046_length_as_bool.xi
new file mode 100644
index 0000000..2bc404b
--- /dev/null
+++ b/tests/pracownia2/error/046_length_as_bool.xi
@@ -0,0 +1,6 @@
+test(x:int[]):bool
+{
+    return length(x)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/047_init2_boolA_fst.xi b/tests/pracownia2/error/047_init2_boolA_fst.xi
new file mode 100644
index 0000000..b0c2284
--- /dev/null
+++ b/tests/pracownia2/error/047_init2_boolA_fst.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool[];
+    a:int[i][42];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/048_false_intA.xi b/tests/pracownia2/error/048_false_intA.xi
new file mode 100644
index 0000000..013da66
--- /dev/null
+++ b/tests/pracownia2/error/048_false_intA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int[] = false
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/049_shadowing_decl_return_more.xi b/tests/pracownia2/error/049_shadowing_decl_return_more.xi
new file mode 100644
index 0000000..2c00290
--- /dev/null
+++ b/tests/pracownia2/error/049_shadowing_decl_return_more.xi
@@ -0,0 +1,5 @@
+f(x:int) : int
+f(x:int) : int, int
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/050_function_missing_return_if_return.xi b/tests/pracownia2/error/050_function_missing_return_if_return.xi
new file mode 100644
index 0000000..a909483
--- /dev/null
+++ b/tests/pracownia2/error/050_function_missing_return_if_return.xi
@@ -0,0 +1,8 @@
+f(x:bool):int
+{
+    if (x) {
+        return 0
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/051_procedure_used_as_function_return.xi b/tests/pracownia2/error/051_procedure_used_as_function_return.xi
new file mode 100644
index 0000000..71c3cf8
--- /dev/null
+++ b/tests/pracownia2/error/051_procedure_used_as_function_return.xi
@@ -0,0 +1,8 @@
+f()
+
+g():int
+{
+    return f()    
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/052_function_missing_return.xi b/tests/pracownia2/error/052_function_missing_return.xi
new file mode 100644
index 0000000..89ee185
--- /dev/null
+++ b/tests/pracownia2/error/052_function_missing_return.xi
@@ -0,0 +1,5 @@
+f():int
+{
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/053_multi_return_type_initialized_array_multidim.xi b/tests/pracownia2/error/053_multi_return_type_initialized_array_multidim.xi
new file mode 100644
index 0000000..f2acaaa
--- /dev/null
+++ b/tests/pracownia2/error/053_multi_return_type_initialized_array_multidim.xi
@@ -0,0 +1,4 @@
+test(): bool[], int[][42][], bool[][]
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/054_shadowing_decl_return_less.xi b/tests/pracownia2/error/054_shadowing_decl_return_less.xi
new file mode 100644
index 0000000..992eb5a
--- /dev/null
+++ b/tests/pracownia2/error/054_shadowing_decl_return_less.xi
@@ -0,0 +1,5 @@
+f(x:int) : int, int
+f(x:int) : int
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/055_initialized_array.xi b/tests/pracownia2/error/055_initialized_array.xi
new file mode 100644
index 0000000..027e9ba
--- /dev/null
+++ b/tests/pracownia2/error/055_initialized_array.xi
@@ -0,0 +1,9 @@
+producer(): int[], bool
+
+test()
+{
+    x:int[30], y:bool = producer()
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/056_false_int.xi b/tests/pracownia2/error/056_false_int.xi
new file mode 100644
index 0000000..76b0bc2
--- /dev/null
+++ b/tests/pracownia2/error/056_false_int.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int = false
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/057_false_boolA.xi b/tests/pracownia2/error/057_false_boolA.xi
new file mode 100644
index 0000000..cdc3abd
--- /dev/null
+++ b/tests/pracownia2/error/057_false_boolA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool[] = false
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/058_formal_pars_def.xi b/tests/pracownia2/error/058_formal_pars_def.xi
new file mode 100644
index 0000000..d09234e
--- /dev/null
+++ b/tests/pracownia2/error/058_formal_pars_def.xi
@@ -0,0 +1,6 @@
+test(x:int, x:int, y:bool)
+{
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/059_char_bool.xi b/tests/pracownia2/error/059_char_bool.xi
new file mode 100644
index 0000000..51a1712
--- /dev/null
+++ b/tests/pracownia2/error/059_char_bool.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool = 'X'
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/060_procedure_too_less_args_expect2.xi b/tests/pracownia2/error/060_procedure_too_less_args_expect2.xi
new file mode 100644
index 0000000..0eb163d
--- /dev/null
+++ b/tests/pracownia2/error/060_procedure_too_less_args_expect2.xi
@@ -0,0 +1,8 @@
+f(x:int, y:int)
+
+g()
+{
+    f(1)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/061_while_cond_int.xi b/tests/pracownia2/error/061_while_cond_int.xi
new file mode 100644
index 0000000..f6ef07b
--- /dev/null
+++ b/tests/pracownia2/error/061_while_cond_int.xi
@@ -0,0 +1,7 @@
+test(x:int)
+{
+    while x {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/062_shadowing_decl_less_fpars.xi b/tests/pracownia2/error/062_shadowing_decl_less_fpars.xi
new file mode 100644
index 0000000..ad85289
--- /dev/null
+++ b/tests/pracownia2/error/062_shadowing_decl_less_fpars.xi
@@ -0,0 +1,5 @@
+f(x:int, y:int)
+f(x:int)
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/063_comp_lt_bool.xi b/tests/pracownia2/error/063_comp_lt_bool.xi
new file mode 100644
index 0000000..d4d45f1
--- /dev/null
+++ b/tests/pracownia2/error/063_comp_lt_bool.xi
@@ -0,0 +1,7 @@
+test(a:bool, b:bool):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/064_procedure_used_as_function_ifelsecond.xi b/tests/pracownia2/error/064_procedure_used_as_function_ifelsecond.xi
new file mode 100644
index 0000000..73a9b2a
--- /dev/null
+++ b/tests/pracownia2/error/064_procedure_used_as_function_ifelsecond.xi
@@ -0,0 +1,10 @@
+f()
+
+g()
+{
+    if f() {
+    } else {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/065_comp_ge_boolA.xi b/tests/pracownia2/error/065_comp_ge_boolA.xi
new file mode 100644
index 0000000..1e468b5
--- /dev/null
+++ b/tests/pracownia2/error/065_comp_ge_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:int[]):bool
+{
+  return a >= b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/066_initsize_wrong_place.xi b/tests/pracownia2/error/066_initsize_wrong_place.xi
new file mode 100644
index 0000000..80bbbb2
--- /dev/null
+++ b/tests/pracownia2/error/066_initsize_wrong_place.xi
@@ -0,0 +1,6 @@
+test()
+{
+    a:int[][42];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/067_comp_ge_boolA.xi b/tests/pracownia2/error/067_comp_ge_boolA.xi
new file mode 100644
index 0000000..9e8fc52
--- /dev/null
+++ b/tests/pracownia2/error/067_comp_ge_boolA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:bool[]):bool
+{
+  return a >= b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/068_formal_pars_decl_other_type.xi b/tests/pracownia2/error/068_formal_pars_decl_other_type.xi
new file mode 100644
index 0000000..79cc8e2
--- /dev/null
+++ b/tests/pracownia2/error/068_formal_pars_decl_other_type.xi
@@ -0,0 +1,4 @@
+test(x:int, x:int[], y:bool)
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/069_int_bool.xi b/tests/pracownia2/error/069_int_bool.xi
new file mode 100644
index 0000000..5a2c456
--- /dev/null
+++ b/tests/pracownia2/error/069_int_bool.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool = 42
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/070_char_boolA.xi b/tests/pracownia2/error/070_char_boolA.xi
new file mode 100644
index 0000000..9eab250
--- /dev/null
+++ b/tests/pracownia2/error/070_char_boolA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool[] = 'X'
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/071_procedure_used_as_function_whilecond.xi b/tests/pracownia2/error/071_procedure_used_as_function_whilecond.xi
new file mode 100644
index 0000000..d60f7b6
--- /dev/null
+++ b/tests/pracownia2/error/071_procedure_used_as_function_whilecond.xi
@@ -0,0 +1,9 @@
+f()
+
+g()
+{
+    while f() {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/072_if_cond_int.xi b/tests/pracownia2/error/072_if_cond_int.xi
new file mode 100644
index 0000000..8822d65
--- /dev/null
+++ b/tests/pracownia2/error/072_if_cond_int.xi
@@ -0,0 +1,7 @@
+test(x:int)
+{
+    if x {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/073_comp_le_boolA.xi b/tests/pracownia2/error/073_comp_le_boolA.xi
new file mode 100644
index 0000000..83674a0
--- /dev/null
+++ b/tests/pracownia2/error/073_comp_le_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:int[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/074_expecting2_given1.xi b/tests/pracownia2/error/074_expecting2_given1.xi
new file mode 100644
index 0000000..594aff7
--- /dev/null
+++ b/tests/pracownia2/error/074_expecting2_given1.xi
@@ -0,0 +1,6 @@
+f():int,int
+{
+    return 1
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/075_shadowing_decl_return_type.xi b/tests/pracownia2/error/075_shadowing_decl_return_type.xi
new file mode 100644
index 0000000..42ebd02
--- /dev/null
+++ b/tests/pracownia2/error/075_shadowing_decl_return_type.xi
@@ -0,0 +1,5 @@
+f(x:int) : int
+f(x:int) : bool
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/076_intA_index.xi b/tests/pracownia2/error/076_intA_index.xi
new file mode 100644
index 0000000..cc43ec4
--- /dev/null
+++ b/tests/pracownia2/error/076_intA_index.xi
@@ -0,0 +1,7 @@
+test(a:int[])
+{
+    i:int[];
+    a[i] = 1;
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/077_procedure_too_many_args_expect0.xi b/tests/pracownia2/error/077_procedure_too_many_args_expect0.xi
new file mode 100644
index 0000000..dec5d8f
--- /dev/null
+++ b/tests/pracownia2/error/077_procedure_too_many_args_expect0.xi
@@ -0,0 +1,8 @@
+f()
+
+g()
+{
+    f(1, 2)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/078_true_int.xi b/tests/pracownia2/error/078_true_int.xi
new file mode 100644
index 0000000..4ee78d7
--- /dev/null
+++ b/tests/pracownia2/error/078_true_int.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int = true
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/079_comp_gt_boolA_intA.xi b/tests/pracownia2/error/079_comp_gt_boolA_intA.xi
new file mode 100644
index 0000000..de19bee
--- /dev/null
+++ b/tests/pracownia2/error/079_comp_gt_boolA_intA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:int[]):bool
+{
+  return a > b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/080_int_intA.xi b/tests/pracownia2/error/080_int_intA.xi
new file mode 100644
index 0000000..7569fe3
--- /dev/null
+++ b/tests/pracownia2/error/080_int_intA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int[] = 42
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/081_procedure_too_less_args_expect1.xi b/tests/pracownia2/error/081_procedure_too_less_args_expect1.xi
new file mode 100644
index 0000000..0931f48
--- /dev/null
+++ b/tests/pracownia2/error/081_procedure_too_less_args_expect1.xi
@@ -0,0 +1,8 @@
+f(x:int)
+
+g()
+{
+    f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/082_function_missing_return_while_return.xi b/tests/pracownia2/error/082_function_missing_return_while_return.xi
new file mode 100644
index 0000000..b7dd972
--- /dev/null
+++ b/tests/pracownia2/error/082_function_missing_return_while_return.xi
@@ -0,0 +1,8 @@
+f(x:bool):int
+{
+    while x {
+        return 0
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/083_shadowing_decl_other_fpartype.xi b/tests/pracownia2/error/083_shadowing_decl_other_fpartype.xi
new file mode 100644
index 0000000..fbd8682
--- /dev/null
+++ b/tests/pracownia2/error/083_shadowing_decl_other_fpartype.xi
@@ -0,0 +1,5 @@
+f(x:int)
+f(x:bool)
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/084_init2_boolA_snd.xi b/tests/pracownia2/error/084_init2_boolA_snd.xi
new file mode 100644
index 0000000..ce9aac3
--- /dev/null
+++ b/tests/pracownia2/error/084_init2_boolA_snd.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool[];
+    a:int[42][i];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/085_expecting2_given_proc.xi b/tests/pracownia2/error/085_expecting2_given_proc.xi
new file mode 100644
index 0000000..d39d103
--- /dev/null
+++ b/tests/pracownia2/error/085_expecting2_given_proc.xi
@@ -0,0 +1,8 @@
+g()
+
+f():int,int
+{
+    return g()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/086_function_missing_return_ifelse_then_return.xi b/tests/pracownia2/error/086_function_missing_return_ifelse_then_return.xi
new file mode 100644
index 0000000..df596c5
--- /dev/null
+++ b/tests/pracownia2/error/086_function_missing_return_ifelse_then_return.xi
@@ -0,0 +1,9 @@
+f(x:bool):int
+{
+    if (x) {
+        return 0
+    } else {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/087_comp_ge_bool.xi b/tests/pracownia2/error/087_comp_ge_bool.xi
new file mode 100644
index 0000000..ecf351f
--- /dev/null
+++ b/tests/pracownia2/error/087_comp_ge_bool.xi
@@ -0,0 +1,7 @@
+test(a:bool, b:bool):bool
+{
+  return a >= b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/088_init2_intA_fst_only.xi b/tests/pracownia2/error/088_init2_intA_fst_only.xi
new file mode 100644
index 0000000..ba1bb06
--- /dev/null
+++ b/tests/pracownia2/error/088_init2_intA_fst_only.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:int[];
+    a:int[i][];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/089_comp_le_boolA_intA.xi b/tests/pracownia2/error/089_comp_le_boolA_intA.xi
new file mode 100644
index 0000000..631bed1
--- /dev/null
+++ b/tests/pracownia2/error/089_comp_le_boolA_intA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:int[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/090_expected_2_given3_joker.xi b/tests/pracownia2/error/090_expected_2_given3_joker.xi
new file mode 100644
index 0000000..47373fa
--- /dev/null
+++ b/tests/pracownia2/error/090_expected_2_given3_joker.xi
@@ -0,0 +1,8 @@
+f(): int, int, int
+
+g()
+{
+    x:int, _ = f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/091_function_missing_return_while_simple.xi b/tests/pracownia2/error/091_function_missing_return_while_simple.xi
new file mode 100644
index 0000000..0e3743f
--- /dev/null
+++ b/tests/pracownia2/error/091_function_missing_return_while_simple.xi
@@ -0,0 +1,7 @@
+f(x:bool):int
+{
+    while x {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/092_expected_2_given1.xi b/tests/pracownia2/error/092_expected_2_given1.xi
new file mode 100644
index 0000000..f923012
--- /dev/null
+++ b/tests/pracownia2/error/092_expected_2_given1.xi
@@ -0,0 +1,8 @@
+f(): int
+
+g()
+{
+    x:int, y:int = f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/093_init2_intA_snd.xi b/tests/pracownia2/error/093_init2_intA_snd.xi
new file mode 100644
index 0000000..6a82e3b
--- /dev/null
+++ b/tests/pracownia2/error/093_init2_intA_snd.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:int[];
+    a:int[42][i];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/094_while_cond_boolA.xi b/tests/pracownia2/error/094_while_cond_boolA.xi
new file mode 100644
index 0000000..47cde1a
--- /dev/null
+++ b/tests/pracownia2/error/094_while_cond_boolA.xi
@@ -0,0 +1,7 @@
+test(x:bool[])
+{
+    while x {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/095_mult_trueture.xi b/tests/pracownia2/error/095_mult_trueture.xi
new file mode 100644
index 0000000..9798982
--- /dev/null
+++ b/tests/pracownia2/error/095_mult_trueture.xi
@@ -0,0 +1,7 @@
+f():bool
+{
+    return true - true
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/096_procedure_used_in_return_in_procedure.xi b/tests/pracownia2/error/096_procedure_used_in_return_in_procedure.xi
new file mode 100644
index 0000000..1f78f7f
--- /dev/null
+++ b/tests/pracownia2/error/096_procedure_used_in_return_in_procedure.xi
@@ -0,0 +1,9 @@
+f()
+
+g()
+{
+    return f()
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/097_init2_bool_fst_only.xi b/tests/pracownia2/error/097_init2_bool_fst_only.xi
new file mode 100644
index 0000000..6ee7634
--- /dev/null
+++ b/tests/pracownia2/error/097_init2_bool_fst_only.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool;
+    a:int[i][];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/098_true_boolA.xi b/tests/pracownia2/error/098_true_boolA.xi
new file mode 100644
index 0000000..eff0d8d
--- /dev/null
+++ b/tests/pracownia2/error/098_true_boolA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool[] = true
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/099_variables_nested_scope.xi b/tests/pracownia2/error/099_variables_nested_scope.xi
new file mode 100644
index 0000000..b863101
--- /dev/null
+++ b/tests/pracownia2/error/099_variables_nested_scope.xi
@@ -0,0 +1,9 @@
+test()
+{
+    x:int
+    {
+        x:bool
+    } 
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/100_string_int.xi b/tests/pracownia2/error/100_string_int.xi
new file mode 100644
index 0000000..cc048d4
--- /dev/null
+++ b/tests/pracownia2/error/100_string_int.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int = "Polonia"
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/101_init_intA.xi b/tests/pracownia2/error/101_init_intA.xi
new file mode 100644
index 0000000..1d0823f
--- /dev/null
+++ b/tests/pracownia2/error/101_init_intA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:int[];
+    a:int[i];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/102_ifelse_cond_int.xi b/tests/pracownia2/error/102_ifelse_cond_int.xi
new file mode 100644
index 0000000..8822d65
--- /dev/null
+++ b/tests/pracownia2/error/102_ifelse_cond_int.xi
@@ -0,0 +1,7 @@
+test(x:int)
+{
+    if x {
+    }
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/103_comp_gt_boolA.xi b/tests/pracownia2/error/103_comp_gt_boolA.xi
new file mode 100644
index 0000000..db28717
--- /dev/null
+++ b/tests/pracownia2/error/103_comp_gt_boolA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:bool[]):bool
+{
+  return a > b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/104_plus_trueture.xi b/tests/pracownia2/error/104_plus_trueture.xi
new file mode 100644
index 0000000..44ddced
--- /dev/null
+++ b/tests/pracownia2/error/104_plus_trueture.xi
@@ -0,0 +1,7 @@
+f():bool
+{
+    return true + true
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/105_true_intA.xi b/tests/pracownia2/error/105_true_intA.xi
new file mode 100644
index 0000000..3db313a
--- /dev/null
+++ b/tests/pracownia2/error/105_true_intA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int[] = true
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/106_length_as_intA.xi b/tests/pracownia2/error/106_length_as_intA.xi
new file mode 100644
index 0000000..7d29ad2
--- /dev/null
+++ b/tests/pracownia2/error/106_length_as_intA.xi
@@ -0,0 +1,6 @@
+test(x:int[]):int[]
+{
+    return length(x)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/107_variables_nested_scope_ifelse.xi b/tests/pracownia2/error/107_variables_nested_scope_ifelse.xi
new file mode 100644
index 0000000..a7b0cb6
--- /dev/null
+++ b/tests/pracownia2/error/107_variables_nested_scope_ifelse.xi
@@ -0,0 +1,10 @@
+test()
+{
+    x:int
+    if true {
+    } else {
+        x:bool
+    } 
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/108_bool_as_A_from_A.xi b/tests/pracownia2/error/108_bool_as_A_from_A.xi
new file mode 100644
index 0000000..15c1e4b
--- /dev/null
+++ b/tests/pracownia2/error/108_bool_as_A_from_A.xi
@@ -0,0 +1,6 @@
+test(x:bool[])
+{
+    x[0][0] = true;
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/109_return_type_initialized_array.xi b/tests/pracownia2/error/109_return_type_initialized_array.xi
new file mode 100644
index 0000000..29b7141
--- /dev/null
+++ b/tests/pracownia2/error/109_return_type_initialized_array.xi
@@ -0,0 +1,4 @@
+test():int[42]
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/110_expecting2_given3.xi b/tests/pracownia2/error/110_expecting2_given3.xi
new file mode 100644
index 0000000..306595d
--- /dev/null
+++ b/tests/pracownia2/error/110_expecting2_given3.xi
@@ -0,0 +1,6 @@
+f():int,int
+{
+    return 1,2,3
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/111_variables_nested_scope_while.xi b/tests/pracownia2/error/111_variables_nested_scope_while.xi
new file mode 100644
index 0000000..b0d1936
--- /dev/null
+++ b/tests/pracownia2/error/111_variables_nested_scope_while.xi
@@ -0,0 +1,9 @@
+test()
+{
+    x:int
+    while true {
+        x:bool
+    } 
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/112_comp_lt_intA_boolA.xi b/tests/pracownia2/error/112_comp_lt_intA_boolA.xi
new file mode 100644
index 0000000..333e826
--- /dev/null
+++ b/tests/pracownia2/error/112_comp_lt_intA_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:bool[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/113_missing_multireturn.xi b/tests/pracownia2/error/113_missing_multireturn.xi
new file mode 100644
index 0000000..c2262f9
--- /dev/null
+++ b/tests/pracownia2/error/113_missing_multireturn.xi
@@ -0,0 +1,5 @@
+f():int,int
+{
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/114_return_multireturn_func_not_allowed.xi b/tests/pracownia2/error/114_return_multireturn_func_not_allowed.xi
new file mode 100644
index 0000000..07345d9
--- /dev/null
+++ b/tests/pracownia2/error/114_return_multireturn_func_not_allowed.xi
@@ -0,0 +1,8 @@
+g():int,int
+
+f():int,int
+{
+    return g()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/115_expecting2_given0.xi b/tests/pracownia2/error/115_expecting2_given0.xi
new file mode 100644
index 0000000..b773933
--- /dev/null
+++ b/tests/pracownia2/error/115_expecting2_given0.xi
@@ -0,0 +1,6 @@
+f():int,int
+{
+    return
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/116_length_int.xi b/tests/pracownia2/error/116_length_int.xi
new file mode 100644
index 0000000..b491aa1
--- /dev/null
+++ b/tests/pracownia2/error/116_length_int.xi
@@ -0,0 +1,6 @@
+test(x:int):int
+{
+    return length(x)
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/117_comp_le_boolA.xi b/tests/pracownia2/error/117_comp_le_boolA.xi
new file mode 100644
index 0000000..c55d624
--- /dev/null
+++ b/tests/pracownia2/error/117_comp_le_boolA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:bool[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/118_variables_nested_scope_if.xi b/tests/pracownia2/error/118_variables_nested_scope_if.xi
new file mode 100644
index 0000000..655caa9
--- /dev/null
+++ b/tests/pracownia2/error/118_variables_nested_scope_if.xi
@@ -0,0 +1,9 @@
+test()
+{
+    x:int
+    if true {
+        x:bool
+    } 
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/119_comp_lt_boolA_intA.xi b/tests/pracownia2/error/119_comp_lt_boolA_intA.xi
new file mode 100644
index 0000000..631bed1
--- /dev/null
+++ b/tests/pracownia2/error/119_comp_lt_boolA_intA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:int[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/120_formal_pars_def_other_type.xi b/tests/pracownia2/error/120_formal_pars_def_other_type.xi
new file mode 100644
index 0000000..f9dcade
--- /dev/null
+++ b/tests/pracownia2/error/120_formal_pars_def_other_type.xi
@@ -0,0 +1,6 @@
+test(x:int, x:int[], y:bool)
+{
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/121_comp_ge_boolA_intA.xi b/tests/pracownia2/error/121_comp_ge_boolA_intA.xi
new file mode 100644
index 0000000..a112dd5
--- /dev/null
+++ b/tests/pracownia2/error/121_comp_ge_boolA_intA.xi
@@ -0,0 +1,7 @@
+test(a:bool[], b:int[]):bool
+{
+  return a >= b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/122_init_boolA.xi b/tests/pracownia2/error/122_init_boolA.xi
new file mode 100644
index 0000000..4a3f027
--- /dev/null
+++ b/tests/pracownia2/error/122_init_boolA.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool[];
+    a:int[i];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/123_comp_ge_intA_boolA.xi b/tests/pracownia2/error/123_comp_ge_intA_boolA.xi
new file mode 100644
index 0000000..a6b066e
--- /dev/null
+++ b/tests/pracownia2/error/123_comp_ge_intA_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:bool[]):bool
+{
+  return a >= b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/124_init2_bool_fst.xi b/tests/pracownia2/error/124_init2_bool_fst.xi
new file mode 100644
index 0000000..462eeee
--- /dev/null
+++ b/tests/pracownia2/error/124_init2_bool_fst.xi
@@ -0,0 +1,7 @@
+test()
+{
+    i:bool;
+    a:int[i][42];
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/125_expected_2_given0_joker.xi b/tests/pracownia2/error/125_expected_2_given0_joker.xi
new file mode 100644
index 0000000..96a8e35
--- /dev/null
+++ b/tests/pracownia2/error/125_expected_2_given0_joker.xi
@@ -0,0 +1,8 @@
+f()
+
+g()
+{
+    x:int, _ = f()
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/126_return_type_initialized_array_multidim.xi b/tests/pracownia2/error/126_return_type_initialized_array_multidim.xi
new file mode 100644
index 0000000..0dfa847
--- /dev/null
+++ b/tests/pracownia2/error/126_return_type_initialized_array_multidim.xi
@@ -0,0 +1,4 @@
+test():int[][42][]
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/127_formal_arg_initialized_array_multidim.xi b/tests/pracownia2/error/127_formal_arg_initialized_array_multidim.xi
new file mode 100644
index 0000000..053528f
--- /dev/null
+++ b/tests/pracownia2/error/127_formal_arg_initialized_array_multidim.xi
@@ -0,0 +1,5 @@
+test(x:int[][43][])
+{
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/128_div_trueture.xi b/tests/pracownia2/error/128_div_trueture.xi
new file mode 100644
index 0000000..1f0da71
--- /dev/null
+++ b/tests/pracownia2/error/128_div_trueture.xi
@@ -0,0 +1,7 @@
+f():bool
+{
+    return true / true
+}
+
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/129_string_bool.xi b/tests/pracownia2/error/129_string_bool.xi
new file mode 100644
index 0000000..c983fc4
--- /dev/null
+++ b/tests/pracownia2/error/129_string_bool.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:bool[] = "Polonia"
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/130_comp_lt_boolA.xi b/tests/pracownia2/error/130_comp_lt_boolA.xi
new file mode 100644
index 0000000..83674a0
--- /dev/null
+++ b/tests/pracownia2/error/130_comp_lt_boolA.xi
@@ -0,0 +1,7 @@
+test(a:int[], b:int[]):bool
+{
+  return a < b
+}
+//@PRACOWNIA
+//@stop_after typechecker
+//@should_not_typecheck
diff --git a/tests/pracownia2/error/131_variables_same_scope.xi b/tests/pracownia2/error/131_variables_same_scope.xi
new file mode 100644
index 0000000..8cdf9e3
--- /dev/null
+++ b/tests/pracownia2/error/131_variables_same_scope.xi
@@ -0,0 +1,7 @@
+test()
+{
+    x:int
+    x:bool
+}
+//@PRACOWNIA
+//@should_not_typecheck
diff --git a/tests/pracownia2/ok/000_without_expectation_concat_second_magic.xi b/tests/pracownia2/ok/000_without_expectation_concat_second_magic.xi
new file mode 100644
index 0000000..24a40c1
--- /dev/null
+++ b/tests/pracownia2/ok/000_without_expectation_concat_second_magic.xi
@@ -0,0 +1,6 @@
+test():int
+{
+    return length({true} + {}[0])
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/001_ifelse_on_pred.xi b/tests/pracownia2/ok/001_ifelse_on_pred.xi
new file mode 100644
index 0000000..4cab2c4
--- /dev/null
+++ b/tests/pracownia2/ok/001_ifelse_on_pred.xi
@@ -0,0 +1,10 @@
+pred():bool
+test()
+{
+    if pred() {
+    } else {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/002_fetch_int.xi b/tests/pracownia2/ok/002_fetch_int.xi
new file mode 100644
index 0000000..447cba9
--- /dev/null
+++ b/tests/pracownia2/ok/002_fetch_int.xi
@@ -0,0 +1,7 @@
+test(x:int[]):int
+{
+    return x[15]
+}
+//@PRACOWNIA
+//@stop_after typechecker
+
diff --git a/tests/pracownia2/ok/003_with_expectation_concat_second_empty.xi b/tests/pracownia2/ok/003_with_expectation_concat_second_empty.xi
new file mode 100644
index 0000000..1844c7c
--- /dev/null
+++ b/tests/pracownia2/ok/003_with_expectation_concat_second_empty.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {true} + {}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/004_with_expectation_empty_curly.xi b/tests/pracownia2/ok/004_with_expectation_empty_curly.xi
new file mode 100644
index 0000000..30b9ff6
--- /dev/null
+++ b/tests/pracownia2/ok/004_with_expectation_empty_curly.xi
@@ -0,0 +1,7 @@
+test():bool[]
+{
+    return {}
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/005_with_expectation_concat_second_magic.xi b/tests/pracownia2/ok/005_with_expectation_concat_second_magic.xi
new file mode 100644
index 0000000..e3bec49
--- /dev/null
+++ b/tests/pracownia2/ok/005_with_expectation_concat_second_magic.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {true} + {}[0]
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/006_if_on_literal.xi b/tests/pracownia2/ok/006_if_on_literal.xi
new file mode 100644
index 0000000..cd1d2bd
--- /dev/null
+++ b/tests/pracownia2/ok/006_if_on_literal.xi
@@ -0,0 +1,8 @@
+test()
+{
+    if true {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/007_without_expectation_concat_second_weird.xi b/tests/pracownia2/ok/007_without_expectation_concat_second_weird.xi
new file mode 100644
index 0000000..377b7bf
--- /dev/null
+++ b/tests/pracownia2/ok/007_without_expectation_concat_second_weird.xi
@@ -0,0 +1,6 @@
+test():int
+{
+    return length({true} + {{}[0]})
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/008_fetch_fetch.xi b/tests/pracownia2/ok/008_fetch_fetch.xi
new file mode 100644
index 0000000..ad01d39
--- /dev/null
+++ b/tests/pracownia2/ok/008_fetch_fetch.xi
@@ -0,0 +1,7 @@
+test(x:int[][]):int
+{
+    return x[1][2]
+}
+//@PRACOWNIA
+//@stop_after typechecker
+
diff --git a/tests/pracownia2/ok/009_while_on_literal.xi b/tests/pracownia2/ok/009_while_on_literal.xi
new file mode 100644
index 0000000..0bc0458
--- /dev/null
+++ b/tests/pracownia2/ok/009_while_on_literal.xi
@@ -0,0 +1,8 @@
+test()
+{
+    while true {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/010_with_expectation_concat_first_weird.xi b/tests/pracownia2/ok/010_with_expectation_concat_first_weird.xi
new file mode 100644
index 0000000..1aa4ac2
--- /dev/null
+++ b/tests/pracownia2/ok/010_with_expectation_concat_first_weird.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {{}[0]} + {true}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/011_simple_length.xi b/tests/pracownia2/ok/011_simple_length.xi
new file mode 100644
index 0000000..629bf19
--- /dev/null
+++ b/tests/pracownia2/ok/011_simple_length.xi
@@ -0,0 +1,6 @@
+test(x:bool[]):int
+{
+    return length(x)
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/012_with_expectation_concat_first_magic.xi b/tests/pracownia2/ok/012_with_expectation_concat_first_magic.xi
new file mode 100644
index 0000000..62b3626
--- /dev/null
+++ b/tests/pracownia2/ok/012_with_expectation_concat_first_magic.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {}[0] + {true}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/013_without_expectation_concat_second_empty.xi b/tests/pracownia2/ok/013_without_expectation_concat_second_empty.xi
new file mode 100644
index 0000000..b294650
--- /dev/null
+++ b/tests/pracownia2/ok/013_without_expectation_concat_second_empty.xi
@@ -0,0 +1,6 @@
+test():int
+{
+    return length({true} + {})
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/014_if_on_var.xi b/tests/pracownia2/ok/014_if_on_var.xi
new file mode 100644
index 0000000..b69eaf2
--- /dev/null
+++ b/tests/pracownia2/ok/014_if_on_var.xi
@@ -0,0 +1,8 @@
+test(x:bool)
+{
+    if x {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/015_with_expectation_concat_second_weird.xi b/tests/pracownia2/ok/015_with_expectation_concat_second_weird.xi
new file mode 100644
index 0000000..c7993e3
--- /dev/null
+++ b/tests/pracownia2/ok/015_with_expectation_concat_second_weird.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {true} + {{}[0]}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/016_with_expectation_a_lot_of_magic_int.xi b/tests/pracownia2/ok/016_with_expectation_a_lot_of_magic_int.xi
new file mode 100644
index 0000000..d73c4c6
--- /dev/null
+++ b/tests/pracownia2/ok/016_with_expectation_a_lot_of_magic_int.xi
@@ -0,0 +1,40 @@
+consumer1(x:int[])
+consumer2(x:int[][])
+consumer3(x:int[][][])
+ 
+test()
+{
+    consumer1(
+        { {{}[0]}[0]
+        , {}[0]
+        , {}[0][0][0]
+        })
+    consumer2(
+        { {{}[0]}[0]
+        , {}[0]
+        , {}[0][0][0]
+        })
+    consumer2(
+        { { {{}[0]}[0]   }
+        , { {}[0]        }
+        , { {}[0][0][0]  }
+        })
+    consumer3(
+        { {{}[0]}[0]
+        , {}[0]
+        , {}[0][0][0]
+        })
+    consumer3(
+        { { {{}[0]}[0]  }
+        , { {}[0]       }
+        , { {}[0][0][0] }
+        })
+    consumer3(
+        { { { {{}[0]}[0]  } }
+        , { { {}[0]       } }
+        , { { {}[0][0][0] } }
+        })
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/017_ifelse_on_and.xi b/tests/pracownia2/ok/017_ifelse_on_and.xi
new file mode 100644
index 0000000..5ac374e
--- /dev/null
+++ b/tests/pracownia2/ok/017_ifelse_on_and.xi
@@ -0,0 +1,9 @@
+test()
+{
+    if true & false {
+    } else {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/018_if_on_pred.xi b/tests/pracownia2/ok/018_if_on_pred.xi
new file mode 100644
index 0000000..1bc8917
--- /dev/null
+++ b/tests/pracownia2/ok/018_if_on_pred.xi
@@ -0,0 +1,9 @@
+pred():bool
+test()
+{
+    if pred() {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/019_ifelse_on_or.xi b/tests/pracownia2/ok/019_ifelse_on_or.xi
new file mode 100644
index 0000000..451ce2e
--- /dev/null
+++ b/tests/pracownia2/ok/019_ifelse_on_or.xi
@@ -0,0 +1,9 @@
+test()
+{
+    if true | false {
+    } else {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/020_with_expectation_concat_both_empty.xi b/tests/pracownia2/ok/020_with_expectation_concat_both_empty.xi
new file mode 100644
index 0000000..a14097b
--- /dev/null
+++ b/tests/pracownia2/ok/020_with_expectation_concat_both_empty.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {} + {}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/021_mutualrec.xi b/tests/pracownia2/ok/021_mutualrec.xi
new file mode 100644
index 0000000..26d1b5b
--- /dev/null
+++ b/tests/pracownia2/ok/021_mutualrec.xi
@@ -0,0 +1,12 @@
+
+f(): int {
+    return g()
+}
+
+
+g(): int {
+    return f()
+}
+
+//@PRACOWNIA
+//@stop_after parser
diff --git a/tests/pracownia2/ok/022_int.xi b/tests/pracownia2/ok/022_int.xi
new file mode 100644
index 0000000..ae97ae7
--- /dev/null
+++ b/tests/pracownia2/ok/022_int.xi
@@ -0,0 +1,10 @@
+test()
+{
+    x:int = 1
+    x = 42
+    x = 'a'
+}    
+
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/023_with_expectation_concat_both_magic.xi b/tests/pracownia2/ok/023_with_expectation_concat_both_magic.xi
new file mode 100644
index 0000000..b30b3bd
--- /dev/null
+++ b/tests/pracownia2/ok/023_with_expectation_concat_both_magic.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {}[0] + {}[0]
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/024_store_bool.xi b/tests/pracownia2/ok/024_store_bool.xi
new file mode 100644
index 0000000..5991605
--- /dev/null
+++ b/tests/pracownia2/ok/024_store_bool.xi
@@ -0,0 +1,6 @@
+test(x:bool[])
+{
+    x[15] = true
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/025_with_expectation_concat_magic_empty.xi b/tests/pracownia2/ok/025_with_expectation_concat_magic_empty.xi
new file mode 100644
index 0000000..9a00030
--- /dev/null
+++ b/tests/pracownia2/ok/025_with_expectation_concat_magic_empty.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {}[0] + {}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/026_length_string.xi b/tests/pracownia2/ok/026_length_string.xi
new file mode 100644
index 0000000..acef6a4
--- /dev/null
+++ b/tests/pracownia2/ok/026_length_string.xi
@@ -0,0 +1,6 @@
+test():int
+{
+    return length("Klucze do domu")
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/027_with_expectation_curly_elems.xi b/tests/pracownia2/ok/027_with_expectation_curly_elems.xi
new file mode 100644
index 0000000..eb407c1
--- /dev/null
+++ b/tests/pracownia2/ok/027_with_expectation_curly_elems.xi
@@ -0,0 +1,7 @@
+test():bool[]
+{
+    return {true, false, true}
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/028_while_on_and.xi b/tests/pracownia2/ok/028_while_on_and.xi
new file mode 100644
index 0000000..cf00ff1
--- /dev/null
+++ b/tests/pracownia2/ok/028_while_on_and.xi
@@ -0,0 +1,8 @@
+test()
+{
+    while true & false {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/029_with_expectation_concat_empty_weird.xi b/tests/pracownia2/ok/029_with_expectation_concat_empty_weird.xi
new file mode 100644
index 0000000..e361865
--- /dev/null
+++ b/tests/pracownia2/ok/029_with_expectation_concat_empty_weird.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {} + {{}[0]}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/030_intA.xi b/tests/pracownia2/ok/030_intA.xi
new file mode 100644
index 0000000..3c052aa
--- /dev/null
+++ b/tests/pracownia2/ok/030_intA.xi
@@ -0,0 +1,8 @@
+test()
+{
+    x:int[] = "University"
+    x = "of Wroclaw"
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/031_if_on_or.xi b/tests/pracownia2/ok/031_if_on_or.xi
new file mode 100644
index 0000000..5ee0e99
--- /dev/null
+++ b/tests/pracownia2/ok/031_if_on_or.xi
@@ -0,0 +1,8 @@
+test()
+{
+    if true | false {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/032_with_expectation_first_weird.xi b/tests/pracownia2/ok/032_with_expectation_first_weird.xi
new file mode 100644
index 0000000..b25485a
--- /dev/null
+++ b/tests/pracownia2/ok/032_with_expectation_first_weird.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {{}[0], false, true}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/033_with_expectation_concat_weird_empty.xi b/tests/pracownia2/ok/033_with_expectation_concat_weird_empty.xi
new file mode 100644
index 0000000..86a956b
--- /dev/null
+++ b/tests/pracownia2/ok/033_with_expectation_concat_weird_empty.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {{}[0]} + {}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/034_bool.xi b/tests/pracownia2/ok/034_bool.xi
new file mode 100644
index 0000000..ebf7565
--- /dev/null
+++ b/tests/pracownia2/ok/034_bool.xi
@@ -0,0 +1,8 @@
+test()
+{
+    x:bool = true
+    x = false
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/035_store_store.xi b/tests/pracownia2/ok/035_store_store.xi
new file mode 100644
index 0000000..8af586b
--- /dev/null
+++ b/tests/pracownia2/ok/035_store_store.xi
@@ -0,0 +1,6 @@
+test(x:bool[][])
+{
+    x[0][1] = true
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/036_ifelse_on_var.xi b/tests/pracownia2/ok/036_ifelse_on_var.xi
new file mode 100644
index 0000000..e906f81
--- /dev/null
+++ b/tests/pracownia2/ok/036_ifelse_on_var.xi
@@ -0,0 +1,9 @@
+test(x:bool)
+{
+    if x {
+    } else {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/037_with_expectation_concat.xi b/tests/pracownia2/ok/037_with_expectation_concat.xi
new file mode 100644
index 0000000..402e822
--- /dev/null
+++ b/tests/pracownia2/ok/037_with_expectation_concat.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {false, true} + {true, false}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/038_length_curly.xi b/tests/pracownia2/ok/038_length_curly.xi
new file mode 100644
index 0000000..7aae6bd
--- /dev/null
+++ b/tests/pracownia2/ok/038_length_curly.xi
@@ -0,0 +1,6 @@
+test():int
+{
+    return length({true, false})
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/039_if_on_and.xi b/tests/pracownia2/ok/039_if_on_and.xi
new file mode 100644
index 0000000..bff5231
--- /dev/null
+++ b/tests/pracownia2/ok/039_if_on_and.xi
@@ -0,0 +1,8 @@
+test()
+{
+    if true & false {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/040_while_on_var.xi b/tests/pracownia2/ok/040_while_on_var.xi
new file mode 100644
index 0000000..881cc76
--- /dev/null
+++ b/tests/pracownia2/ok/040_while_on_var.xi
@@ -0,0 +1,8 @@
+test(x:bool)
+{
+    while x {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/041_without_expectation_concat.xi b/tests/pracownia2/ok/041_without_expectation_concat.xi
new file mode 100644
index 0000000..bb368db
--- /dev/null
+++ b/tests/pracownia2/ok/041_without_expectation_concat.xi
@@ -0,0 +1,6 @@
+test():int
+{
+    return length({false, true} + {true, false})
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/042_init.xi b/tests/pracownia2/ok/042_init.xi
new file mode 100644
index 0000000..3f5c86f
--- /dev/null
+++ b/tests/pracownia2/ok/042_init.xi
@@ -0,0 +1,6 @@
+test()
+{
+    a:int[42][];
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/043_without_expectation_second_weird.xi b/tests/pracownia2/ok/043_without_expectation_second_weird.xi
new file mode 100644
index 0000000..66997bf
--- /dev/null
+++ b/tests/pracownia2/ok/043_without_expectation_second_weird.xi
@@ -0,0 +1,6 @@
+test():int
+{
+    return length({false, {{}}[0][0], true})
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/044_while_on_or.xi b/tests/pracownia2/ok/044_while_on_or.xi
new file mode 100644
index 0000000..bf80140
--- /dev/null
+++ b/tests/pracownia2/ok/044_while_on_or.xi
@@ -0,0 +1,8 @@
+test()
+{
+    while true | false {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/045_with_expectation_second_weird.xi b/tests/pracownia2/ok/045_with_expectation_second_weird.xi
new file mode 100644
index 0000000..26f7d74
--- /dev/null
+++ b/tests/pracownia2/ok/045_with_expectation_second_weird.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {false, {{}}[0][0], true}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/046_with_expectation_concat_first_empty.xi b/tests/pracownia2/ok/046_with_expectation_concat_first_empty.xi
new file mode 100644
index 0000000..c9b0b43
--- /dev/null
+++ b/tests/pracownia2/ok/046_with_expectation_concat_first_empty.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {} + {true}
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/047_with_expectation_concat_empty_magic.xi b/tests/pracownia2/ok/047_with_expectation_concat_empty_magic.xi
new file mode 100644
index 0000000..92dc19e
--- /dev/null
+++ b/tests/pracownia2/ok/047_with_expectation_concat_empty_magic.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {} + {}[0]
+}
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/048_noconflict_other_scopes.xi b/tests/pracownia2/ok/048_noconflict_other_scopes.xi
new file mode 100644
index 0000000..788c5ee
--- /dev/null
+++ b/tests/pracownia2/ok/048_noconflict_other_scopes.xi
@@ -0,0 +1,11 @@
+test(x:bool)
+{
+    if x {
+        y:int
+    } else {
+        y:int[]
+    }
+}
+//@PRACOWNIA
+//@stop_after typechecker
+
diff --git a/tests/pracownia2/ok/049_ifelse_on_literal.xi b/tests/pracownia2/ok/049_ifelse_on_literal.xi
new file mode 100644
index 0000000..abae0f2
--- /dev/null
+++ b/tests/pracownia2/ok/049_ifelse_on_literal.xi
@@ -0,0 +1,9 @@
+test()
+{
+    if true {
+    } else {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/050_without_expectation_curly_elems.xi b/tests/pracownia2/ok/050_without_expectation_curly_elems.xi
new file mode 100644
index 0000000..246c002
--- /dev/null
+++ b/tests/pracownia2/ok/050_without_expectation_curly_elems.xi
@@ -0,0 +1,7 @@
+test():int
+{
+    return length({true, false, true})
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/051_while_on_pred.xi b/tests/pracownia2/ok/051_while_on_pred.xi
new file mode 100644
index 0000000..9167206
--- /dev/null
+++ b/tests/pracownia2/ok/051_while_on_pred.xi
@@ -0,0 +1,9 @@
+pred():bool
+test()
+{
+    while pred() {
+    }
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/052_with_expectation_a_lot_of_magic_bool.xi b/tests/pracownia2/ok/052_with_expectation_a_lot_of_magic_bool.xi
new file mode 100644
index 0000000..3400fbc
--- /dev/null
+++ b/tests/pracownia2/ok/052_with_expectation_a_lot_of_magic_bool.xi
@@ -0,0 +1,60 @@
+consumer1(x:bool[])
+consumer2(x:bool[][])
+consumer3(x:bool[][][])
+ 
+test()
+{
+    consumer1(
+        { {{}[0]}[0]
+        , {}[0]
+        , {}[0][0][0]
+        })
+    consumer2(
+        { {{}[0]}[0]
+        , {}[0]
+        , {}[0][0][0]
+        })
+    consumer2(
+        { { {{}[0]}[0] }
+        , {}[0]
+        , {}[0][0][0]
+        })
+    consumer2(
+        { {{}[0]}[0]
+        , { {}[0] }
+        , {}[0][0][0]
+        })
+    consumer2(
+        { {{}[0]}[0]
+        , {}[0]
+        , { {}[0][0][0] }
+        })
+    consumer2(
+        { { {{}[0]}[0]   }
+        , { {}[0]        }
+        , { {}[0][0][0]  }
+        })
+    consumer3(
+        { {{}[0]}[0]
+        , {}[0]
+        , {}[0][0][0]
+        })
+    consumer3(
+        { { {{}[0]}[0]  }
+        , { {}[0]       }
+        , { {}[0][0][0] }
+        })
+    consumer3(
+        { {{}[0]}[0]
+        , {}[0]
+        , { {}[0][0][0] }
+        })
+    consumer3(
+        { { { {{}[0]}[0]  } }
+        , { { {}[0]       } }
+        , { { {}[0][0][0] } }
+        })
+}
+
+//@PRACOWNIA
+//@stop_after typechecker
diff --git a/tests/pracownia2/ok/053_with_expectation_concat_both_weird.xi b/tests/pracownia2/ok/053_with_expectation_concat_both_weird.xi
new file mode 100644
index 0000000..28923a5
--- /dev/null
+++ b/tests/pracownia2/ok/053_with_expectation_concat_both_weird.xi
@@ -0,0 +1,6 @@
+test():bool[]
+{
+    return {{}[0]} + {{}[0]}
+}
+//@PRACOWNIA
+//@stop_after typechecker