diff --git a/tests/baselines/reference/multiline.errors.txt b/tests/baselines/reference/multiline.errors.txt
new file mode 100644
index 00000000000..af8bbf64415
--- /dev/null
+++ b/tests/baselines/reference/multiline.errors.txt
@@ -0,0 +1,52 @@
+tests/cases/conformance/directives/a.ts(10,1): error TS2578: Unused '@ts-expect-error' directive.
+tests/cases/conformance/directives/b.tsx(26,1): error TS2578: Unused '@ts-expect-error' directive.
+
+
+==== tests/cases/conformance/directives/a.ts (1 errors) ====
+ /**
+ @ts-ignore */
+ export let x: string = 100;
+
+ /**
+ @ts-expect-error */
+ export let y: string = 100;
+
+ /**
+ @ts-expect-error */
+ ~~~~~~~~~~~~~~~~~~~~
+!!! error TS2578: Unused '@ts-expect-error' directive.
+ export let ok = 100;
+
+==== tests/cases/conformance/directives/b.tsx (1 errors) ====
+ import * as React from "react";
+
+ export function MyComponent(props: { foo: string }) {
+ return
;
+ }
+
+ let x = (
+
+ {/*
+ @ts-ignore */}
+ ;
+
+ );
+
+ let y = (
+
+ {/*
+ @ts-expect-error */}
+ ;
+
+ );
+
+ let ok = (
+
+ {/*
+ @ts-expect-error */}
+ ~~~~~~~~~~~~~~~~~~~~~~
+!!! error TS2578: Unused '@ts-expect-error' directive.
+ ;
+
+ );
+
\ No newline at end of file
diff --git a/tests/baselines/reference/multiline.js b/tests/baselines/reference/multiline.js
new file mode 100644
index 00000000000..dc01c542b19
--- /dev/null
+++ b/tests/baselines/reference/multiline.js
@@ -0,0 +1,78 @@
+//// [tests/cases/conformance/directives/multiline.tsx] ////
+
+//// [a.ts]
+/**
+ @ts-ignore */
+export let x: string = 100;
+
+/**
+ @ts-expect-error */
+export let y: string = 100;
+
+/**
+ @ts-expect-error */
+export let ok = 100;
+
+//// [b.tsx]
+import * as React from "react";
+
+export function MyComponent(props: { foo: string }) {
+ return ;
+}
+
+let x = (
+
+ {/*
+ @ts-ignore */}
+ ;
+
+);
+
+let y = (
+
+ {/*
+ @ts-expect-error */}
+ ;
+
+);
+
+let ok = (
+
+ {/*
+ @ts-expect-error */}
+ ;
+
+);
+
+
+//// [a.js]
+"use strict";
+exports.__esModule = true;
+exports.ok = exports.y = exports.x = void 0;
+/**
+ @ts-ignore */
+exports.x = 100;
+/**
+ @ts-expect-error */
+exports.y = 100;
+/**
+ @ts-expect-error */
+exports.ok = 100;
+//// [b.js]
+"use strict";
+exports.__esModule = true;
+exports.MyComponent = void 0;
+var React = require("react");
+function MyComponent(props) {
+ return React.createElement("div", null);
+}
+exports.MyComponent = MyComponent;
+var x = (React.createElement("div", null,
+ React.createElement(MyComponent, { foo: 100 }),
+ ";"));
+var y = (React.createElement("div", null,
+ React.createElement(MyComponent, { foo: 100 }),
+ ";"));
+var ok = (React.createElement("div", null,
+ React.createElement(MyComponent, { foo: "hooray" }),
+ ";"));
diff --git a/tests/baselines/reference/multiline.symbols b/tests/baselines/reference/multiline.symbols
new file mode 100644
index 00000000000..4e3719938af
--- /dev/null
+++ b/tests/baselines/reference/multiline.symbols
@@ -0,0 +1,80 @@
+=== tests/cases/conformance/directives/a.ts ===
+/**
+ @ts-ignore */
+export let x: string = 100;
+>x : Symbol(x, Decl(a.ts, 2, 10))
+
+/**
+ @ts-expect-error */
+export let y: string = 100;
+>y : Symbol(y, Decl(a.ts, 6, 10))
+
+/**
+ @ts-expect-error */
+export let ok = 100;
+>ok : Symbol(ok, Decl(a.ts, 10, 10))
+
+=== tests/cases/conformance/directives/b.tsx ===
+import * as React from "react";
+>React : Symbol(React, Decl(b.tsx, 0, 6))
+
+export function MyComponent(props: { foo: string }) {
+>MyComponent : Symbol(MyComponent, Decl(b.tsx, 0, 31))
+>props : Symbol(props, Decl(b.tsx, 2, 28))
+>foo : Symbol(foo, Decl(b.tsx, 2, 36))
+
+ return ;
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2400, 45))
+}
+
+let x = (
+>x : Symbol(x, Decl(b.tsx, 6, 3))
+
+
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2400, 45))
+
+ {/*
+ @ts-ignore */}
+ ;
+>MyComponent : Symbol(MyComponent, Decl(b.tsx, 0, 31))
+>foo : Symbol(foo, Decl(b.tsx, 10, 16))
+
+
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2400, 45))
+
+);
+
+let y = (
+>y : Symbol(y, Decl(b.tsx, 14, 3))
+
+
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2400, 45))
+
+ {/*
+ @ts-expect-error */}
+ ;
+>MyComponent : Symbol(MyComponent, Decl(b.tsx, 0, 31))
+>foo : Symbol(foo, Decl(b.tsx, 18, 16))
+
+
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2400, 45))
+
+);
+
+let ok = (
+>ok : Symbol(ok, Decl(b.tsx, 22, 3))
+
+
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2400, 45))
+
+ {/*
+ @ts-expect-error */}
+ ;
+>MyComponent : Symbol(MyComponent, Decl(b.tsx, 0, 31))
+>foo : Symbol(foo, Decl(b.tsx, 26, 16))
+
+
+>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2400, 45))
+
+);
+
diff --git a/tests/baselines/reference/multiline.types b/tests/baselines/reference/multiline.types
new file mode 100644
index 00000000000..4ba48a7747f
--- /dev/null
+++ b/tests/baselines/reference/multiline.types
@@ -0,0 +1,96 @@
+=== tests/cases/conformance/directives/a.ts ===
+/**
+ @ts-ignore */
+export let x: string = 100;
+>x : string
+>100 : 100
+
+/**
+ @ts-expect-error */
+export let y: string = 100;
+>y : string
+>100 : 100
+
+/**
+ @ts-expect-error */
+export let ok = 100;
+>ok : number
+>100 : 100
+
+=== tests/cases/conformance/directives/b.tsx ===
+import * as React from "react";
+>React : typeof React
+
+export function MyComponent(props: { foo: string }) {
+>MyComponent : (props: { foo: string;}) => JSX.Element
+>props : { foo: string; }
+>foo : string
+
+ return ;
+> : JSX.Element
+>div : any
+}
+
+let x = (
+>x : JSX.Element
+>( {/* @ts-ignore */} ;
) : JSX.Element
+
+
+>
{/* @ts-ignore */} ;
: JSX.Element
+>div : any
+
+ {/*
+ @ts-ignore */}
+
;
+>
: JSX.Element
+>MyComponent : (props: { foo: string; }) => JSX.Element
+>foo : number
+>100 : 100
+
+
+>div : any
+
+);
+
+let y = (
+>y : JSX.Element
+>( {/* @ts-expect-error */} ;
) : JSX.Element
+
+
+>
{/* @ts-expect-error */} ;
: JSX.Element
+>div : any
+
+ {/*
+ @ts-expect-error */}
+
;
+>
: JSX.Element
+>MyComponent : (props: { foo: string; }) => JSX.Element
+>foo : number
+>100 : 100
+
+
+>div : any
+
+);
+
+let ok = (
+>ok : JSX.Element
+>( {/* @ts-expect-error */} ;
) : JSX.Element
+
+
+>
{/* @ts-expect-error */} ;
: JSX.Element
+>div : any
+
+ {/*
+ @ts-expect-error */}
+
;
+>
: JSX.Element
+>MyComponent : (props: { foo: string; }) => JSX.Element
+>foo : string
+>"hooray" : "hooray"
+
+
+>div : any
+
+);
+
diff --git a/tests/cases/conformance/directives/multiline.tsx b/tests/cases/conformance/directives/multiline.tsx
new file mode 100644
index 00000000000..bf18c15c21f
--- /dev/null
+++ b/tests/cases/conformance/directives/multiline.tsx
@@ -0,0 +1,45 @@
+// @filename: a.ts
+/**
+ @ts-ignore */
+export let x: string = 100;
+
+/**
+ @ts-expect-error */
+export let y: string = 100;
+
+/**
+ @ts-expect-error */
+export let ok = 100;
+
+// @filename: b.tsx
+// @jsx: react
+// @libFiles: react.d.ts,lib.d.ts
+import * as React from "react";
+
+export function MyComponent(props: { foo: string }) {
+ return ;
+}
+
+let x = (
+
+ {/*
+ @ts-ignore */}
+ ;
+
+);
+
+let y = (
+
+ {/*
+ @ts-expect-error */}
+ ;
+
+);
+
+let ok = (
+
+ {/*
+ @ts-expect-error */}
+ ;
+
+);