Test source spans for `IN` expression targets
diff --git a/src/ast/spans.rs b/src/ast/spans.rs
index 7b92b52..8267c71 100644
--- a/src/ast/spans.rs
+++ b/src/ast/spans.rs
@@ -3242,4 +3242,20 @@
             stmt => panic!("expected ALTER TABLE; got {stmt:?}"),
         }
     }
+
+    #[test]
+    fn test_in_expression_spans() {
+        for (sql, expected) in [
+            ("  needle IN (first, last)", "needle IN (first, last"),
+            (
+                "  needle IN (SELECT last FROM items)",
+                "needle IN (SELECT last FROM items",
+            ),
+            ("  needle IN UNNEST(items)", "needle IN UNNEST(items"),
+        ] {
+            let mut test = SpanTest::new(&GenericDialect, sql);
+            let expr = test.0.parse_expr().unwrap();
+            assert_eq!(test.get_source(expr.span()), expected, "{sql}");
+        }
+    }
 }