diff --git a/test/var/inferred/function-var.wgsl b/test/var/inferred/function-var.wgsl
new file mode 100644
index 0000000..0d39fe0
--- /dev/null
+++ b/test/var/inferred/function-var.wgsl
@@ -0,0 +1,39 @@
+struct MyStruct {
+    f1 : f32;
+};
+
+type MyArray = array<f32, 10>;
+
+fn ret_i32() -> i32 { return 1; }
+fn ret_u32() -> u32 { return 1u; }
+fn ret_f32() -> f32 { return 1.0; }
+fn ret_MyStruct() -> MyStruct { return MyStruct(); }
+fn ret_MyArray() -> MyArray { return MyArray(); }
+
+// Local variables
+fn var_decls() {
+    var v1 = 1;
+    var v2 = 1u;
+    var v3 = 1.0;
+
+    var v4 = vec3<i32>(1, 1, 1);
+    var v5 = vec3<u32>(1u, 1u, 1u);
+    var v6 = vec3<f32>(1.0, 1.0, 1.0);
+
+    var v7 = mat3x3<f32>(v6, v6, v6);
+
+    var v8 = MyStruct(1.0);
+    var v9 = MyArray();
+
+    var v10 = ret_i32();
+    var v11 = ret_u32();
+    var v12 = ret_f32();
+    var v13 = ret_MyStruct();
+    var v14 = ret_MyStruct();
+    var v15 = ret_MyArray();
+}
+
+[[stage(fragment)]]
+fn main() -> [[location(0)]] vec4<f32> {
+    return vec4<f32>(0.0,0.0,0.0,0.0);
+}
