diff --git a/rust/ql/test/extractor-tests/generated/ArrayExpr/ArrayExpr.expected b/rust/ql/test/extractor-tests/generated/ArrayExpr/ArrayExpr.expected
index 549f43fc9892..9e0452ab5c84 100644
--- a/rust/ql/test/extractor-tests/generated/ArrayExpr/ArrayExpr.expected
+++ b/rust/ql/test/extractor-tests/generated/ArrayExpr/ArrayExpr.expected
@@ -1,2 +1,2 @@
-| gen_array_expr.rs:5:5:5:13 | ArrayExpr | getNumberOfAttrs: | 0 | getNumberOfExprs: | 3 |
-| gen_array_expr.rs:6:5:6:11 | ArrayExpr | getNumberOfAttrs: | 0 | getNumberOfExprs: | 2 |
+| gen_array_expr.rs:5:5:5:13 | ArrayExpr | hasType: | yes | getNumberOfAttrs: | 0 | getNumberOfExprs: | 3 |
+| gen_array_expr.rs:6:5:6:11 | ArrayExpr | hasType: | yes | getNumberOfAttrs: | 0 | getNumberOfExprs: | 2 |
diff --git a/rust/ql/test/extractor-tests/generated/ArrayExpr/ArrayExpr_getType.expected b/rust/ql/test/extractor-tests/generated/ArrayExpr/ArrayExpr_getType.expected
new file mode 100644
index 000000000000..dd2278d0fbe6
--- /dev/null
+++ b/rust/ql/test/extractor-tests/generated/ArrayExpr/ArrayExpr_getType.expected
@@ -0,0 +1,2 @@
+| gen_array_expr.rs:5:5:5:13 | ArrayExpr | [i32; 3] |
+| gen_array_expr.rs:6:5:6:11 | ArrayExpr | [i32; 10] |
diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected
index 19464c21fd6a..cabc8f7745a7 100644
--- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected
+++ b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected
@@ -1 +1 @@
-| gen_asm_expr.rs:6:9:6:24 | AsmExpr | getNumberOfAttrs: | 0 | hasExpr: | yes |
+| gen_asm_expr.rs:6:9:6:24 | AsmExpr | hasType: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getType.expected b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getType.expected
new file mode 100644
index 000000000000..8def72c29591
--- /dev/null
+++ b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getType.expected
@@ -0,0 +1 @@
+| gen_asm_expr.rs:6:9:6:24 | AsmExpr | () |
diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected
index 2ed01b9058e1..cedcb5343bda 100644
--- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected
+++ b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected
@@ -1 +1 @@
-| gen_await_expr.rs:6:17:6:27 | AwaitExpr | getNumberOfAttrs: | 0 | hasExpr: | yes |
+| gen_await_expr.rs:6:17:6:27 | AwaitExpr | hasType: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getType.expected b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getType.expected
new file mode 100644
index 000000000000..cfaea15b3494
--- /dev/null
+++ b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getType.expected
@@ -0,0 +1 @@
+| gen_await_expr.rs:6:17:6:27 | AwaitExpr | {unknown} |
diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected
index 75840ec81fed..c953c26e1fe0 100644
--- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected
+++ b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected
@@ -1 +1 @@
-| gen_become_expr.rs:8:10:8:36 | BecomeExpr | getNumberOfAttrs: | 0 | hasExpr: | yes |
+| gen_become_expr.rs:8:10:8:36 | BecomeExpr | hasType: | yes | getNumberOfAttrs: | 0 | hasExpr: | yes |
diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getType.expected b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getType.expected
new file mode 100644
index 000000000000..59ef83e70c85
--- /dev/null
+++ b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getType.expected
@@ -0,0 +1 @@
+| gen_become_expr.rs:8:10:8:36 | BecomeExpr | ! |
diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected
index 2f7a47933b1c..304bad9516f9 100644
--- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected
+++ b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected
@@ -1,5 +1,5 @@
-| gen_binary_expr.rs:5:5:5:9 | ... + ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
-| gen_binary_expr.rs:6:5:6:10 | ... && ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
-| gen_binary_expr.rs:7:5:7:10 | ... <= ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
-| gen_binary_expr.rs:8:5:8:9 | ... = ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
-| gen_binary_expr.rs:9:5:9:10 | ... += ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
+| gen_binary_expr.rs:5:5:5:9 | ... + ... | hasType: | yes | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
+| gen_binary_expr.rs:6:5:6:10 | ... && ... | hasType: | yes | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
+| gen_binary_expr.rs:7:5:7:10 | ... <= ... | hasType: | yes | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
+| gen_binary_expr.rs:8:5:8:9 | ... = ... | hasType: | yes | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
+| gen_binary_expr.rs:9:5:9:10 | ... += ... | hasType: | yes | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes |
diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getType.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getType.expected
new file mode 100644
index 000000000000..acd387aa75d4
--- /dev/null
+++ b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getType.expected
@@ -0,0 +1,5 @@
+| gen_binary_expr.rs:5:5:5:9 | ... + ... | {unknown} |
+| gen_binary_expr.rs:6:5:6:10 | ... && ... | bool |
+| gen_binary_expr.rs:7:5:7:10 | ... <= ... | bool |
+| gen_binary_expr.rs:8:5:8:9 | ... = ... | () |
+| gen_binary_expr.rs:9:5:9:10 | ... += ... | () |
diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected
index 39ec1d6a7e1a..0dffcfa81e7e 100644
--- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected
+++ b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected
@@ -1,3 +1,3 @@
-| gen_block_expr.rs:3:28:12:1 | BlockExpr | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasLabel: | no | hasStmtList: | yes |
-| gen_block_expr.rs:5:5:7:5 | BlockExpr | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasLabel: | no | hasStmtList: | yes |
-| gen_block_expr.rs:8:5:11:5 | BlockExpr | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasLabel: | yes | hasStmtList: | yes |
+| gen_block_expr.rs:3:28:12:1 | BlockExpr | hasType: | yes | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasLabel: | no | hasStmtList: | yes |
+| gen_block_expr.rs:5:5:7:5 | BlockExpr | hasType: | yes | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasLabel: | no | hasStmtList: | yes |
+| gen_block_expr.rs:8:5:11:5 | BlockExpr | hasType: | yes | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasLabel: | yes | hasStmtList: | yes |
diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getType.expected b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getType.expected
new file mode 100644
index 000000000000..6b804bd9bc0f
--- /dev/null
+++ b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getType.expected
@@ -0,0 +1,3 @@
+| gen_block_expr.rs:3:28:12:1 | BlockExpr | () |
+| gen_block_expr.rs:5:5:7:5 | BlockExpr | () |
+| gen_block_expr.rs:8:5:11:5 | BlockExpr | () |
diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected
index 95c8bdebd47a..13860a668ea0 100644
--- a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected
+++ b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected
@@ -1,2 +1,2 @@
-| gen_box_pat.rs:6:9:6:27 | BoxPat | hasPat: | yes |
-| gen_box_pat.rs:7:9:7:24 | BoxPat | hasPat: | yes |
+| gen_box_pat.rs:6:9:6:27 | BoxPat | hasType: | yes | hasPat: | yes |
+| gen_box_pat.rs:7:9:7:24 | BoxPat | hasType: | yes | hasPat: | yes |
diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getType.expected b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getType.expected
new file mode 100644
index 000000000000..3171955c8485
--- /dev/null
+++ b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getType.expected
@@ -0,0 +1,2 @@
+| gen_box_pat.rs:6:9:6:27 | BoxPat | Box