diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts
index 5d585e2658a..f2175f385ec 100644
--- a/src/compiler/parser.ts
+++ b/src/compiler/parser.ts
@@ -3863,6 +3863,9 @@ namespace ts {
parseErrorAtPosition(openingTagName.pos, openingTagName.end - openingTagName.pos, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, openingTagName));
break;
}
+ else if (token() === SyntaxKind.ConflictMarkerTrivia) {
+ break;
+ }
result.push(parseJsxChild());
}
diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts
index b7a3f35d728..466074bdbcc 100644
--- a/src/compiler/scanner.ts
+++ b/src/compiler/scanner.ts
@@ -1716,7 +1716,14 @@ namespace ts {
while (pos < end) {
pos++;
char = text.charCodeAt(pos);
- if ((char === CharacterCodes.openBrace) || (char === CharacterCodes.lessThan)) {
+ if (char === CharacterCodes.openBrace) {
+ break;
+ }
+ if (char === CharacterCodes.lessThan) {
+ if (isConflictMarkerTrivia(text, pos)) {
+ pos = scanConflictMarkerTrivia(text, pos, error);
+ return token = SyntaxKind.ConflictMarkerTrivia;
+ }
break;
}
}
diff --git a/tests/baselines/reference/conflictMarkerTrivia3.errors.txt b/tests/baselines/reference/conflictMarkerTrivia3.errors.txt
new file mode 100644
index 00000000000..124201ce0ba
--- /dev/null
+++ b/tests/baselines/reference/conflictMarkerTrivia3.errors.txt
@@ -0,0 +1,15 @@
+tests/cases/compiler/conflictMarkerTrivia3.tsx(1,11): error TS17004: Cannot use JSX unless the '--jsx' flag is provided.
+tests/cases/compiler/conflictMarkerTrivia3.tsx(1,16): error TS1005: '' expected.
+tests/cases/compiler/conflictMarkerTrivia3.tsx(2,1): error TS1185: Merge conflict marker encountered.
+
+
+==== tests/cases/compiler/conflictMarkerTrivia3.tsx (3 errors) ====
+ const x =
+ ~~~~~
+!!! error TS17004: Cannot use JSX unless the '--jsx' flag is provided.
+
+ <<<<<<< HEAD
+ ~~~~~~~~~~~~
+!!! error TS1005: '' expected.
+ ~~~~~~~
+!!! error TS1185: Merge conflict marker encountered.
\ No newline at end of file
diff --git a/tests/baselines/reference/conflictMarkerTrivia3.js b/tests/baselines/reference/conflictMarkerTrivia3.js
new file mode 100644
index 00000000000..804030522ec
--- /dev/null
+++ b/tests/baselines/reference/conflictMarkerTrivia3.js
@@ -0,0 +1,6 @@
+//// [conflictMarkerTrivia3.tsx]
+const x =
+<<<<<<< HEAD
+
+//// [conflictMarkerTrivia3.js]
+var x =
>;
diff --git a/tests/baselines/reference/conflictMarkerTrivia4.errors.txt b/tests/baselines/reference/conflictMarkerTrivia4.errors.txt
new file mode 100644
index 00000000000..476dbbce6ce
--- /dev/null
+++ b/tests/baselines/reference/conflictMarkerTrivia4.errors.txt
@@ -0,0 +1,14 @@
+tests/cases/compiler/conflictMarkerTrivia4.ts(1,12): error TS2304: Cannot find name 'div'.
+tests/cases/compiler/conflictMarkerTrivia4.ts(2,1): error TS1185: Merge conflict marker encountered.
+tests/cases/compiler/conflictMarkerTrivia4.ts(2,13): error TS1109: Expression expected.
+
+
+==== tests/cases/compiler/conflictMarkerTrivia4.ts (3 errors) ====
+ const x =
+ ~~~
+!!! error TS2304: Cannot find name 'div'.
+ <<<<<<< HEAD
+ ~~~~~~~
+!!! error TS1185: Merge conflict marker encountered.
+
+!!! error TS1109: Expression expected.
\ No newline at end of file
diff --git a/tests/baselines/reference/conflictMarkerTrivia4.js b/tests/baselines/reference/conflictMarkerTrivia4.js
new file mode 100644
index 00000000000..945e82b2f2d
--- /dev/null
+++ b/tests/baselines/reference/conflictMarkerTrivia4.js
@@ -0,0 +1,6 @@
+//// [conflictMarkerTrivia4.ts]
+const x =
+<<<<<<< HEAD
+
+//// [conflictMarkerTrivia4.js]
+var x = ;
diff --git a/tests/cases/compiler/conflictMarkerTrivia3.tsx b/tests/cases/compiler/conflictMarkerTrivia3.tsx
new file mode 100644
index 00000000000..21f83715ad0
--- /dev/null
+++ b/tests/cases/compiler/conflictMarkerTrivia3.tsx
@@ -0,0 +1,2 @@
+const x =
+<<<<<<< HEAD
\ No newline at end of file
diff --git a/tests/cases/compiler/conflictMarkerTrivia4.ts b/tests/cases/compiler/conflictMarkerTrivia4.ts
new file mode 100644
index 00000000000..21f83715ad0
--- /dev/null
+++ b/tests/cases/compiler/conflictMarkerTrivia4.ts
@@ -0,0 +1,2 @@
+const x =
+<<<<<<< HEAD
\ No newline at end of file