diff --git a/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.d.ts b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.d.ts
new file mode 100644
index 00000000000..8147620b211
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.d.ts
@@ -0,0 +1,2 @@
+declare class C {
+}
diff --git a/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.js b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.js
new file mode 100644
index 00000000000..325ac60ee32
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.js
@@ -0,0 +1,5 @@
+var C = (function () {
+ function C() {
+ }
+ return C;
+})();
diff --git a/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.js.map b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.js.map
new file mode 100644
index 00000000000..de54805ee54
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/FolderC/fileC.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileC.js","sourceRoot":"","sources":["../../../../FolderA/FolderB/FolderC/fileC.ts"],"names":["C","C.constructor"],"mappings":"AAAA;IAAAA;IACAC,CAACA;IAADD,QAACA;AAADA,CAACA,AADD,IACC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.d.ts b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.d.ts
new file mode 100644
index 00000000000..4ff813c3839
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.d.ts
@@ -0,0 +1,4 @@
+///
+declare class B {
+ c: C;
+}
diff --git a/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.js b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.js
new file mode 100644
index 00000000000..99199ca1742
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.js
@@ -0,0 +1,6 @@
+///
+var B = (function () {
+ function B() {
+ }
+ return B;
+})();
diff --git a/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.js.map b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.js.map
new file mode 100644
index 00000000000..d1c844d3247
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/outdir/simple/FolderB/fileB.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileB.js","sourceRoot":"","sources":["../../../FolderA/FolderB/fileB.ts"],"names":["B","B.constructor"],"mappings":"AACA,AADA,wCAAwC;;IACxCA;IAEAC,CAACA;IAADD,QAACA;AAADA,CAACA,AAFD,IAEC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectory/amd/rootDirectory.json b/tests/baselines/reference/project/rootDirectory/amd/rootDirectory.json
new file mode 100644
index 00000000000..111f0277ec1
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/rootDirectory.json
@@ -0,0 +1,22 @@
+{
+ "scenario": "rootDirectory: specify rootDirectory",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "declaration": true,
+ "baselineCheck": true,
+ "rootDir": "FolderA",
+ "resolvedInputFiles": [
+ "lib.d.ts",
+ "FolderA/FolderB/FolderC/fileC.ts",
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "emittedFiles": [
+ "outdir/simple/FolderB/FolderC/fileC.js",
+ "outdir/simple/FolderB/FolderC/fileC.d.ts",
+ "outdir/simple/FolderB/fileB.js",
+ "outdir/simple/FolderB/fileB.d.ts"
+ ]
+}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectory/amd/rootDirectory.sourcemap.txt b/tests/baselines/reference/project/rootDirectory/amd/rootDirectory.sourcemap.txt
new file mode 100644
index 00000000000..83ee3b40181
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/amd/rootDirectory.sourcemap.txt
@@ -0,0 +1,123 @@
+===================================================================
+JsFile: fileC.js
+mapUrl: fileC.js.map
+sourceRoot:
+sources: ../../../../FolderA/FolderB/FolderC/fileC.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/FolderC/fileC.js
+sourceFile:../../../../FolderA/FolderB/FolderC/fileC.ts
+-------------------------------------------------------------------
+>>>var C = (function () {
+1 >
+2 >^^^^^^^^^^^^^^^^^^^->
+1 >
+1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+---
+>>> function C() {
+1->^^^^
+2 > ^^->
+1->
+1->Emitted(2, 5) Source(1, 1) + SourceIndex(0) name (C)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class C {
+ >
+2 > }
+1->Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (C.constructor)
+2 >Emitted(3, 6) Source(2, 2) + SourceIndex(0) name (C.constructor)
+---
+>>> return C;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(4, 5) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(4, 13) Source(2, 2) + SourceIndex(0) name (C)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class C {
+ > }
+1 >Emitted(5, 1) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(5, 2) Source(2, 2) + SourceIndex(0) name (C)
+3 >Emitted(5, 2) Source(1, 1) + SourceIndex(0)
+4 >Emitted(5, 6) Source(2, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileC.js.map===================================================================
+JsFile: fileB.js
+mapUrl: fileB.js.map
+sourceRoot:
+sources: ../../../FolderA/FolderB/fileB.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/fileB.js
+sourceFile:../../../FolderA/FolderB/fileB.ts
+-------------------------------------------------------------------
+>>>///
+1 >
+2 >
+3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1 >///
+ >
+2 >
+3 >///
+1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
+2 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+3 >Emitted(1, 41) Source(1, 41) + SourceIndex(0)
+---
+>>>var B = (function () {
+>>> function B() {
+1 >^^^^
+2 > ^^->
+1 >
+ >
+1 >Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (B)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class B {
+ > public c: C;
+ >
+2 > }
+1->Emitted(4, 5) Source(4, 1) + SourceIndex(0) name (B.constructor)
+2 >Emitted(4, 6) Source(4, 2) + SourceIndex(0) name (B.constructor)
+---
+>>> return B;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(5, 5) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(5, 13) Source(4, 2) + SourceIndex(0) name (B)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class B {
+ > public c: C;
+ > }
+1 >Emitted(6, 1) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(6, 2) Source(4, 2) + SourceIndex(0) name (B)
+3 >Emitted(6, 2) Source(2, 1) + SourceIndex(0)
+4 >Emitted(6, 6) Source(4, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileB.js.map
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.d.ts b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.d.ts
new file mode 100644
index 00000000000..8147620b211
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.d.ts
@@ -0,0 +1,2 @@
+declare class C {
+}
diff --git a/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.js b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.js
new file mode 100644
index 00000000000..325ac60ee32
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.js
@@ -0,0 +1,5 @@
+var C = (function () {
+ function C() {
+ }
+ return C;
+})();
diff --git a/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.js.map b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.js.map
new file mode 100644
index 00000000000..de54805ee54
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/FolderC/fileC.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileC.js","sourceRoot":"","sources":["../../../../FolderA/FolderB/FolderC/fileC.ts"],"names":["C","C.constructor"],"mappings":"AAAA;IAAAA;IACAC,CAACA;IAADD,QAACA;AAADA,CAACA,AADD,IACC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.d.ts b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.d.ts
new file mode 100644
index 00000000000..4ff813c3839
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.d.ts
@@ -0,0 +1,4 @@
+///
+declare class B {
+ c: C;
+}
diff --git a/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.js b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.js
new file mode 100644
index 00000000000..99199ca1742
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.js
@@ -0,0 +1,6 @@
+///
+var B = (function () {
+ function B() {
+ }
+ return B;
+})();
diff --git a/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.js.map b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.js.map
new file mode 100644
index 00000000000..d1c844d3247
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/outdir/simple/FolderB/fileB.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileB.js","sourceRoot":"","sources":["../../../FolderA/FolderB/fileB.ts"],"names":["B","B.constructor"],"mappings":"AACA,AADA,wCAAwC;;IACxCA;IAEAC,CAACA;IAADD,QAACA;AAADA,CAACA,AAFD,IAEC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectory/node/rootDirectory.json b/tests/baselines/reference/project/rootDirectory/node/rootDirectory.json
new file mode 100644
index 00000000000..111f0277ec1
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/rootDirectory.json
@@ -0,0 +1,22 @@
+{
+ "scenario": "rootDirectory: specify rootDirectory",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "declaration": true,
+ "baselineCheck": true,
+ "rootDir": "FolderA",
+ "resolvedInputFiles": [
+ "lib.d.ts",
+ "FolderA/FolderB/FolderC/fileC.ts",
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "emittedFiles": [
+ "outdir/simple/FolderB/FolderC/fileC.js",
+ "outdir/simple/FolderB/FolderC/fileC.d.ts",
+ "outdir/simple/FolderB/fileB.js",
+ "outdir/simple/FolderB/fileB.d.ts"
+ ]
+}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectory/node/rootDirectory.sourcemap.txt b/tests/baselines/reference/project/rootDirectory/node/rootDirectory.sourcemap.txt
new file mode 100644
index 00000000000..83ee3b40181
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectory/node/rootDirectory.sourcemap.txt
@@ -0,0 +1,123 @@
+===================================================================
+JsFile: fileC.js
+mapUrl: fileC.js.map
+sourceRoot:
+sources: ../../../../FolderA/FolderB/FolderC/fileC.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/FolderC/fileC.js
+sourceFile:../../../../FolderA/FolderB/FolderC/fileC.ts
+-------------------------------------------------------------------
+>>>var C = (function () {
+1 >
+2 >^^^^^^^^^^^^^^^^^^^->
+1 >
+1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+---
+>>> function C() {
+1->^^^^
+2 > ^^->
+1->
+1->Emitted(2, 5) Source(1, 1) + SourceIndex(0) name (C)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class C {
+ >
+2 > }
+1->Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (C.constructor)
+2 >Emitted(3, 6) Source(2, 2) + SourceIndex(0) name (C.constructor)
+---
+>>> return C;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(4, 5) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(4, 13) Source(2, 2) + SourceIndex(0) name (C)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class C {
+ > }
+1 >Emitted(5, 1) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(5, 2) Source(2, 2) + SourceIndex(0) name (C)
+3 >Emitted(5, 2) Source(1, 1) + SourceIndex(0)
+4 >Emitted(5, 6) Source(2, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileC.js.map===================================================================
+JsFile: fileB.js
+mapUrl: fileB.js.map
+sourceRoot:
+sources: ../../../FolderA/FolderB/fileB.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/fileB.js
+sourceFile:../../../FolderA/FolderB/fileB.ts
+-------------------------------------------------------------------
+>>>///
+1 >
+2 >
+3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1 >///
+ >
+2 >
+3 >///
+1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
+2 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+3 >Emitted(1, 41) Source(1, 41) + SourceIndex(0)
+---
+>>>var B = (function () {
+>>> function B() {
+1 >^^^^
+2 > ^^->
+1 >
+ >
+1 >Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (B)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class B {
+ > public c: C;
+ >
+2 > }
+1->Emitted(4, 5) Source(4, 1) + SourceIndex(0) name (B.constructor)
+2 >Emitted(4, 6) Source(4, 2) + SourceIndex(0) name (B.constructor)
+---
+>>> return B;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(5, 5) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(5, 13) Source(4, 2) + SourceIndex(0) name (B)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class B {
+ > public c: C;
+ > }
+1 >Emitted(6, 1) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(6, 2) Source(4, 2) + SourceIndex(0) name (B)
+3 >Emitted(6, 2) Source(2, 1) + SourceIndex(0)
+4 >Emitted(6, 6) Source(4, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileB.js.map
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/FolderC/fileC.d.ts b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/FolderC/fileC.d.ts
new file mode 100644
index 00000000000..8147620b211
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/FolderC/fileC.d.ts
@@ -0,0 +1,2 @@
+declare class C {
+}
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/FolderC/fileC.js b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/FolderC/fileC.js
new file mode 100644
index 00000000000..325ac60ee32
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/FolderC/fileC.js
@@ -0,0 +1,5 @@
+var C = (function () {
+ function C() {
+ }
+ return C;
+})();
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/fileB.d.ts b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/fileB.d.ts
new file mode 100644
index 00000000000..4ff813c3839
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/fileB.d.ts
@@ -0,0 +1,4 @@
+///
+declare class B {
+ c: C;
+}
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/fileB.js b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/fileB.js
new file mode 100644
index 00000000000..99199ca1742
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/amd/outdir/simple/fileB.js
@@ -0,0 +1,6 @@
+///
+var B = (function () {
+ function B() {
+ }
+ return B;
+})();
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/amd/rootDirectoryErrors.errors.txt b/tests/baselines/reference/project/rootDirectoryErrors/amd/rootDirectoryErrors.errors.txt
new file mode 100644
index 00000000000..7e10d8fbcd9
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/amd/rootDirectoryErrors.errors.txt
@@ -0,0 +1,14 @@
+error TS6059: File 'FolderA/FolderB/fileB.ts' is not under rootDir 'FolderA/FolderB/FolderC'. RootDir is expected to contain all source files.
+
+
+!!! error TS6059: File 'fileB.ts' is not under rootDir 'FolderA/FolderB/FolderC'. RootDir is expected to contain all source files.
+==== FolderA/FolderB/FolderC/fileC.ts (0 errors) ====
+ class C {
+ }
+
+==== FolderA/FolderB/fileB.ts (0 errors) ====
+ ///
+ class B {
+ public c: C;
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/amd/rootDirectoryErrors.json b/tests/baselines/reference/project/rootDirectoryErrors/amd/rootDirectoryErrors.json
new file mode 100644
index 00000000000..fdde42592ca
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/amd/rootDirectoryErrors.json
@@ -0,0 +1,22 @@
+{
+ "scenario": "rootDirectory: Files outside the rootDirectory",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "declaration": true,
+ "baselineCheck": true,
+ "rootDir": "FolderA/FolderB/FolderC",
+ "resolvedInputFiles": [
+ "lib.d.ts",
+ "FolderA/FolderB/FolderC/fileC.ts",
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "emittedFiles": [
+ "outdir/simple/FolderC/fileC.js",
+ "outdir/simple/FolderC/fileC.d.ts",
+ "outdir/simple/fileB.js",
+ "outdir/simple/fileB.d.ts"
+ ]
+}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/FolderC/fileC.d.ts b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/FolderC/fileC.d.ts
new file mode 100644
index 00000000000..8147620b211
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/FolderC/fileC.d.ts
@@ -0,0 +1,2 @@
+declare class C {
+}
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/FolderC/fileC.js b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/FolderC/fileC.js
new file mode 100644
index 00000000000..325ac60ee32
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/FolderC/fileC.js
@@ -0,0 +1,5 @@
+var C = (function () {
+ function C() {
+ }
+ return C;
+})();
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/fileB.d.ts b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/fileB.d.ts
new file mode 100644
index 00000000000..4ff813c3839
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/fileB.d.ts
@@ -0,0 +1,4 @@
+///
+declare class B {
+ c: C;
+}
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/fileB.js b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/fileB.js
new file mode 100644
index 00000000000..99199ca1742
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/node/outdir/simple/fileB.js
@@ -0,0 +1,6 @@
+///
+var B = (function () {
+ function B() {
+ }
+ return B;
+})();
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/node/rootDirectoryErrors.errors.txt b/tests/baselines/reference/project/rootDirectoryErrors/node/rootDirectoryErrors.errors.txt
new file mode 100644
index 00000000000..7e10d8fbcd9
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/node/rootDirectoryErrors.errors.txt
@@ -0,0 +1,14 @@
+error TS6059: File 'FolderA/FolderB/fileB.ts' is not under rootDir 'FolderA/FolderB/FolderC'. RootDir is expected to contain all source files.
+
+
+!!! error TS6059: File 'fileB.ts' is not under rootDir 'FolderA/FolderB/FolderC'. RootDir is expected to contain all source files.
+==== FolderA/FolderB/FolderC/fileC.ts (0 errors) ====
+ class C {
+ }
+
+==== FolderA/FolderB/fileB.ts (0 errors) ====
+ ///
+ class B {
+ public c: C;
+ }
+
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryErrors/node/rootDirectoryErrors.json b/tests/baselines/reference/project/rootDirectoryErrors/node/rootDirectoryErrors.json
new file mode 100644
index 00000000000..fdde42592ca
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryErrors/node/rootDirectoryErrors.json
@@ -0,0 +1,22 @@
+{
+ "scenario": "rootDirectory: Files outside the rootDirectory",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "declaration": true,
+ "baselineCheck": true,
+ "rootDir": "FolderA/FolderB/FolderC",
+ "resolvedInputFiles": [
+ "lib.d.ts",
+ "FolderA/FolderB/FolderC/fileC.ts",
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "emittedFiles": [
+ "outdir/simple/FolderC/fileC.js",
+ "outdir/simple/FolderC/fileC.d.ts",
+ "outdir/simple/fileB.js",
+ "outdir/simple/fileB.d.ts"
+ ]
+}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/FolderC/fileC.js b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/FolderC/fileC.js
new file mode 100644
index 00000000000..8840c2117cf
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/FolderC/fileC.js
@@ -0,0 +1,6 @@
+var C = (function () {
+ function C() {
+ }
+ return C;
+})();
+//# sourceMappingURL=fileC.js.map
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/FolderC/fileC.js.map b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/FolderC/fileC.js.map
new file mode 100644
index 00000000000..9a35f3fbc3e
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/FolderC/fileC.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileC.js","sourceRoot":"SourceRootPath/","sources":["FolderB/FolderC/fileC.ts"],"names":["C","C.constructor"],"mappings":"AAAA;IAAAA;IACAC,CAACA;IAADD,QAACA;AAADA,CAACA,AADD,IACC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/fileB.js b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/fileB.js
new file mode 100644
index 00000000000..84af55d2d89
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/fileB.js
@@ -0,0 +1,7 @@
+///
+var B = (function () {
+ function B() {
+ }
+ return B;
+})();
+//# sourceMappingURL=fileB.js.map
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/fileB.js.map b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/fileB.js.map
new file mode 100644
index 00000000000..16a45385420
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/outdir/simple/FolderB/fileB.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileB.js","sourceRoot":"SourceRootPath/","sources":["FolderB/fileB.ts"],"names":["B","B.constructor"],"mappings":"AACA,AADA,wCAAwC;;IACxCA;IAEAC,CAACA;IAADD,QAACA;AAADA,CAACA,AAFD,IAEC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/rootDirectoryWithSourceRoot.json b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/rootDirectoryWithSourceRoot.json
new file mode 100644
index 00000000000..deb12150736
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/rootDirectoryWithSourceRoot.json
@@ -0,0 +1,23 @@
+{
+ "scenario": "rootDirectory: specify rootDirectory with sourceRoot",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "sourceMap": true,
+ "sourceRoot": "SourceRootPath",
+ "baselineCheck": true,
+ "rootDir": "FolderA",
+ "resolvedInputFiles": [
+ "lib.d.ts",
+ "FolderA/FolderB/FolderC/fileC.ts",
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "emittedFiles": [
+ "outdir/simple/FolderB/FolderC/fileC.js.map",
+ "outdir/simple/FolderB/FolderC/fileC.js",
+ "outdir/simple/FolderB/fileB.js.map",
+ "outdir/simple/FolderB/fileB.js"
+ ]
+}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/rootDirectoryWithSourceRoot.sourcemap.txt b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/rootDirectoryWithSourceRoot.sourcemap.txt
new file mode 100644
index 00000000000..7c5843bdd34
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/amd/rootDirectoryWithSourceRoot.sourcemap.txt
@@ -0,0 +1,123 @@
+===================================================================
+JsFile: fileC.js
+mapUrl: fileC.js.map
+sourceRoot: SourceRootPath/
+sources: FolderB/FolderC/fileC.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/FolderC/fileC.js
+sourceFile:FolderB/FolderC/fileC.ts
+-------------------------------------------------------------------
+>>>var C = (function () {
+1 >
+2 >^^^^^^^^^^^^^^^^^^^->
+1 >
+1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+---
+>>> function C() {
+1->^^^^
+2 > ^^->
+1->
+1->Emitted(2, 5) Source(1, 1) + SourceIndex(0) name (C)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class C {
+ >
+2 > }
+1->Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (C.constructor)
+2 >Emitted(3, 6) Source(2, 2) + SourceIndex(0) name (C.constructor)
+---
+>>> return C;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(4, 5) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(4, 13) Source(2, 2) + SourceIndex(0) name (C)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class C {
+ > }
+1 >Emitted(5, 1) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(5, 2) Source(2, 2) + SourceIndex(0) name (C)
+3 >Emitted(5, 2) Source(1, 1) + SourceIndex(0)
+4 >Emitted(5, 6) Source(2, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileC.js.map===================================================================
+JsFile: fileB.js
+mapUrl: fileB.js.map
+sourceRoot: SourceRootPath/
+sources: FolderB/fileB.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/fileB.js
+sourceFile:FolderB/fileB.ts
+-------------------------------------------------------------------
+>>>///
+1 >
+2 >
+3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1 >///
+ >
+2 >
+3 >///
+1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
+2 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+3 >Emitted(1, 41) Source(1, 41) + SourceIndex(0)
+---
+>>>var B = (function () {
+>>> function B() {
+1 >^^^^
+2 > ^^->
+1 >
+ >
+1 >Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (B)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class B {
+ > public c: C;
+ >
+2 > }
+1->Emitted(4, 5) Source(4, 1) + SourceIndex(0) name (B.constructor)
+2 >Emitted(4, 6) Source(4, 2) + SourceIndex(0) name (B.constructor)
+---
+>>> return B;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(5, 5) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(5, 13) Source(4, 2) + SourceIndex(0) name (B)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class B {
+ > public c: C;
+ > }
+1 >Emitted(6, 1) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(6, 2) Source(4, 2) + SourceIndex(0) name (B)
+3 >Emitted(6, 2) Source(2, 1) + SourceIndex(0)
+4 >Emitted(6, 6) Source(4, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileB.js.map
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/FolderC/fileC.js b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/FolderC/fileC.js
new file mode 100644
index 00000000000..8840c2117cf
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/FolderC/fileC.js
@@ -0,0 +1,6 @@
+var C = (function () {
+ function C() {
+ }
+ return C;
+})();
+//# sourceMappingURL=fileC.js.map
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/FolderC/fileC.js.map b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/FolderC/fileC.js.map
new file mode 100644
index 00000000000..9a35f3fbc3e
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/FolderC/fileC.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileC.js","sourceRoot":"SourceRootPath/","sources":["FolderB/FolderC/fileC.ts"],"names":["C","C.constructor"],"mappings":"AAAA;IAAAA;IACAC,CAACA;IAADD,QAACA;AAADA,CAACA,AADD,IACC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/fileB.js b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/fileB.js
new file mode 100644
index 00000000000..84af55d2d89
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/fileB.js
@@ -0,0 +1,7 @@
+///
+var B = (function () {
+ function B() {
+ }
+ return B;
+})();
+//# sourceMappingURL=fileB.js.map
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/fileB.js.map b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/fileB.js.map
new file mode 100644
index 00000000000..16a45385420
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/outdir/simple/FolderB/fileB.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"fileB.js","sourceRoot":"SourceRootPath/","sources":["FolderB/fileB.ts"],"names":["B","B.constructor"],"mappings":"AACA,AADA,wCAAwC;;IACxCA;IAEAC,CAACA;IAADD,QAACA;AAADA,CAACA,AAFD,IAEC"}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/rootDirectoryWithSourceRoot.json b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/rootDirectoryWithSourceRoot.json
new file mode 100644
index 00000000000..deb12150736
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/rootDirectoryWithSourceRoot.json
@@ -0,0 +1,23 @@
+{
+ "scenario": "rootDirectory: specify rootDirectory with sourceRoot",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "sourceMap": true,
+ "sourceRoot": "SourceRootPath",
+ "baselineCheck": true,
+ "rootDir": "FolderA",
+ "resolvedInputFiles": [
+ "lib.d.ts",
+ "FolderA/FolderB/FolderC/fileC.ts",
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "emittedFiles": [
+ "outdir/simple/FolderB/FolderC/fileC.js.map",
+ "outdir/simple/FolderB/FolderC/fileC.js",
+ "outdir/simple/FolderB/fileB.js.map",
+ "outdir/simple/FolderB/fileB.js"
+ ]
+}
\ No newline at end of file
diff --git a/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/rootDirectoryWithSourceRoot.sourcemap.txt b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/rootDirectoryWithSourceRoot.sourcemap.txt
new file mode 100644
index 00000000000..7c5843bdd34
--- /dev/null
+++ b/tests/baselines/reference/project/rootDirectoryWithSourceRoot/node/rootDirectoryWithSourceRoot.sourcemap.txt
@@ -0,0 +1,123 @@
+===================================================================
+JsFile: fileC.js
+mapUrl: fileC.js.map
+sourceRoot: SourceRootPath/
+sources: FolderB/FolderC/fileC.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/FolderC/fileC.js
+sourceFile:FolderB/FolderC/fileC.ts
+-------------------------------------------------------------------
+>>>var C = (function () {
+1 >
+2 >^^^^^^^^^^^^^^^^^^^->
+1 >
+1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+---
+>>> function C() {
+1->^^^^
+2 > ^^->
+1->
+1->Emitted(2, 5) Source(1, 1) + SourceIndex(0) name (C)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class C {
+ >
+2 > }
+1->Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (C.constructor)
+2 >Emitted(3, 6) Source(2, 2) + SourceIndex(0) name (C.constructor)
+---
+>>> return C;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(4, 5) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(4, 13) Source(2, 2) + SourceIndex(0) name (C)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class C {
+ > }
+1 >Emitted(5, 1) Source(2, 1) + SourceIndex(0) name (C)
+2 >Emitted(5, 2) Source(2, 2) + SourceIndex(0) name (C)
+3 >Emitted(5, 2) Source(1, 1) + SourceIndex(0)
+4 >Emitted(5, 6) Source(2, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileC.js.map===================================================================
+JsFile: fileB.js
+mapUrl: fileB.js.map
+sourceRoot: SourceRootPath/
+sources: FolderB/fileB.ts
+===================================================================
+-------------------------------------------------------------------
+emittedFile:outdir/simple/FolderB/fileB.js
+sourceFile:FolderB/fileB.ts
+-------------------------------------------------------------------
+>>>///
+1 >
+2 >
+3 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1 >///
+ >
+2 >
+3 >///
+1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
+2 >Emitted(1, 1) Source(1, 1) + SourceIndex(0)
+3 >Emitted(1, 41) Source(1, 41) + SourceIndex(0)
+---
+>>>var B = (function () {
+>>> function B() {
+1 >^^^^
+2 > ^^->
+1 >
+ >
+1 >Emitted(3, 5) Source(2, 1) + SourceIndex(0) name (B)
+---
+>>> }
+1->^^^^
+2 > ^
+3 > ^^^^^^^^^->
+1->class B {
+ > public c: C;
+ >
+2 > }
+1->Emitted(4, 5) Source(4, 1) + SourceIndex(0) name (B.constructor)
+2 >Emitted(4, 6) Source(4, 2) + SourceIndex(0) name (B.constructor)
+---
+>>> return B;
+1->^^^^
+2 > ^^^^^^^^
+1->
+2 > }
+1->Emitted(5, 5) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(5, 13) Source(4, 2) + SourceIndex(0) name (B)
+---
+>>>})();
+1 >
+2 >^
+3 >
+4 > ^^^^
+5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
+1 >
+2 >}
+3 >
+4 > class B {
+ > public c: C;
+ > }
+1 >Emitted(6, 1) Source(4, 1) + SourceIndex(0) name (B)
+2 >Emitted(6, 2) Source(4, 2) + SourceIndex(0) name (B)
+3 >Emitted(6, 2) Source(2, 1) + SourceIndex(0)
+4 >Emitted(6, 6) Source(4, 2) + SourceIndex(0)
+---
+>>>//# sourceMappingURL=fileB.js.map
\ No newline at end of file
diff --git a/tests/cases/project/rootDirectory.json b/tests/cases/project/rootDirectory.json
new file mode 100644
index 00000000000..6dad3982f93
--- /dev/null
+++ b/tests/cases/project/rootDirectory.json
@@ -0,0 +1,12 @@
+{
+ "scenario": "rootDirectory: specify rootDirectory",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "rootDir": "FolderA",
+ "sourceMap": true,
+ "declaration": true,
+ "baselineCheck": true
+}
\ No newline at end of file
diff --git a/tests/cases/project/rootDirectoryErrors.json b/tests/cases/project/rootDirectoryErrors.json
new file mode 100644
index 00000000000..18a256486d0
--- /dev/null
+++ b/tests/cases/project/rootDirectoryErrors.json
@@ -0,0 +1,11 @@
+{
+ "scenario": "rootDirectory: Files outside the rootDirectory",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "rootDir": "FolderA/FolderB/FolderC",
+ "declaration": true,
+ "baselineCheck": true
+}
\ No newline at end of file
diff --git a/tests/cases/project/rootDirectoryWithSourceRoot.json b/tests/cases/project/rootDirectoryWithSourceRoot.json
new file mode 100644
index 00000000000..227b55c13fd
--- /dev/null
+++ b/tests/cases/project/rootDirectoryWithSourceRoot.json
@@ -0,0 +1,12 @@
+{
+ "scenario": "rootDirectory: specify rootDirectory with sourceRoot",
+ "projectRoot": "tests/cases/projects/rootDirectory",
+ "inputFiles": [
+ "FolderA/FolderB/fileB.ts"
+ ],
+ "outDir": "outdir/simple",
+ "rootDir": "FolderA",
+ "sourceMap": true,
+ "sourceRoot": "SourceRootPath",
+ "baselineCheck": true
+}
\ No newline at end of file
diff --git a/tests/cases/projects/rootDirectory/FolderA/FolderB/FolderC/fileC.ts b/tests/cases/projects/rootDirectory/FolderA/FolderB/FolderC/fileC.ts
new file mode 100644
index 00000000000..f4885b3ca74
--- /dev/null
+++ b/tests/cases/projects/rootDirectory/FolderA/FolderB/FolderC/fileC.ts
@@ -0,0 +1,2 @@
+class C {
+}
diff --git a/tests/cases/projects/rootDirectory/FolderA/FolderB/fileB.ts b/tests/cases/projects/rootDirectory/FolderA/FolderB/fileB.ts
new file mode 100644
index 00000000000..03e0f4ad332
--- /dev/null
+++ b/tests/cases/projects/rootDirectory/FolderA/FolderB/fileB.ts
@@ -0,0 +1,4 @@
+///
+class B {
+ public c: C;
+}