@@ -1817,8 +1817,33 @@ final class ExplicitModuleBuildTests: XCTestCase {
1817
1817
for scanIndex in 0 ..< numFiles {
1818
1818
let diagnostics = scanDiagnostics [ scanIndex]
1819
1819
XCTAssertEqual ( diagnostics. count, 2 )
1820
- XCTAssertEqual ( diagnostics [ 0 ] . message, " Unable to find module dependency: 'UnknownModule \( scanIndex) ' " )
1821
- XCTAssertEqual ( diagnostics [ 1 ] . message, " a dependency of main module 'testParallelDependencyScanningDiagnostics \( scanIndex) ' " )
1820
+ // Diagnostic source locations came after per-scan diagnostics, only meaningful
1821
+ // on this test code-path
1822
+ if try dependencyOracle. supportsDiagnosticSourceLocations ( ) {
1823
+ let sourceLoc = try XCTUnwrap ( diagnostics [ 0 ] . sourceLocation)
1824
+ XCTAssertEqual ( sourceLoc. lineNumber, 1 )
1825
+ XCTAssertEqual ( sourceLoc. columnNumber, 8 )
1826
+ XCTAssertEqual ( diagnostics [ 0 ] . message,
1827
+ """
1828
+ Unable to find module dependency: 'UnknownModule \( scanIndex) '
1829
+ import UnknownModule \( scanIndex) ;
1830
+ ^
1831
+
1832
+ """ )
1833
+ let noteSourceLoc = try XCTUnwrap ( diagnostics [ 1 ] . sourceLocation)
1834
+ XCTAssertEqual ( noteSourceLoc. lineNumber, 1 )
1835
+ XCTAssertEqual ( noteSourceLoc. columnNumber, 8 )
1836
+ XCTAssertEqual ( diagnostics [ 1 ] . message,
1837
+ """
1838
+ a dependency of main module 'testParallelDependencyScanningDiagnostics \( scanIndex) '
1839
+ import UnknownModule \( scanIndex) ;
1840
+ ^
1841
+
1842
+ """ )
1843
+ } else {
1844
+ XCTAssertEqual ( diagnostics [ 0 ] . message, " Unable to find module dependency: 'UnknownModule \( scanIndex) ' " )
1845
+ XCTAssertEqual ( diagnostics [ 1 ] . message, " a dependency of main module 'testParallelDependencyScanningDiagnostics \( scanIndex) ' " )
1846
+ }
1822
1847
}
1823
1848
} else {
1824
1849
let globalDiagnostics = try dependencyOracle. getScannerDiagnostics ( )
@@ -2116,7 +2141,7 @@ final class ExplicitModuleBuildTests: XCTestCase {
2116
2141
}
2117
2142
2118
2143
func testTraceDependency( ) throws {
2119
- try withTemporaryDirectory { path in
2144
+ try withTemporaryDirectory { path in
2120
2145
try localFileSystem. changeCurrentWorkingDirectory ( to: path)
2121
2146
let moduleCachePath = path. appending ( component: " ModuleCache " )
2122
2147
try localFileSystem. createDirectory ( moduleCachePath)
0 commit comments