File tree Expand file tree Collapse file tree 6 files changed +58
-3
lines changed Expand file tree Collapse file tree 6 files changed +58
-3
lines changed Original file line number Diff line number Diff line change @@ -222,9 +222,11 @@ namespace driver {
222
222
}
223
223
224
224
// / When a task finishes, check other Jobs that may be blocked.
225
- void markFinished (const Job *Cmd) {
225
+ void markFinished (const Job *Cmd, bool Skipped= false ) {
226
226
if (Comp.ShowIncrementalBuildDecisions ) {
227
- llvm::outs () << " Job finished: " << LogJob (Cmd) << " \n " ;
227
+ llvm::outs () << " Job "
228
+ << (Skipped ? " skipped" : " finished" )
229
+ << " : " << LogJob (Cmd) << " \n " ;
228
230
}
229
231
FinishedCommands.insert (Cmd);
230
232
@@ -590,8 +592,9 @@ namespace driver {
590
592
}
591
593
592
594
ScheduledCommands.insert (Cmd);
593
- markFinished (Cmd);
595
+ markFinished (Cmd, /* Skipped= */ true );
594
596
}
597
+ DeferredCommands.clear ();
595
598
596
599
// ...which may allow us to go on and do later tasks.
597
600
} while (Result == 0 && TQ->hasRemainingTasks ());
Original file line number Diff line number Diff line change
1
+ public class Class1 {
2
+ public var Var1 : Int ?
3
+ }
Original file line number Diff line number Diff line change
1
+ public class Class2 {
2
+ public var Var2c : Class1 ?
3
+ }
Original file line number Diff line number Diff line change
1
+ var x = Class1 ( )
2
+ var y = Class2 ( )
Original file line number Diff line number Diff line change
1
+ {
2
+ "" : {
3
+ "swift-dependencies" : " master.swiftdeps"
4
+ },
5
+ "main.swift" : {
6
+ "dependencies" : " main.d" ,
7
+ "object" : " main.o" ,
8
+ "swiftmodule" : " main~partial.swiftmodule" ,
9
+ "swift-dependencies" : " main.swiftdeps"
10
+ },
11
+ "file1.swift" : {
12
+ "dependencies" : " file1.d" ,
13
+ "object" : " file1.o" ,
14
+ "swiftmodule" : " file1~partial.swiftmodule" ,
15
+ "swift-dependencies" : " file1.swiftdeps"
16
+ },
17
+ "file2.swift" : {
18
+ "dependencies" : " file2.d" ,
19
+ "object" : " file2.o" ,
20
+ "swiftmodule" : " file2~partial.swiftmodule" ,
21
+ "swift-dependencies" : " file2.swiftdeps"
22
+ }
23
+ }
Original file line number Diff line number Diff line change
1
+ // XFAIL: linux
2
+ // RUN: rm -rf %t && cp -r %S/Inputs/only-skip-once/ %t
3
+ // RUN: touch -t 201401240005 %t/*
4
+
5
+ // RUN: cd %t && %swiftc_driver -driver-show-incremental -output-file-map %t/output-file-map.json -incremental main.swift file1.swift file2.swift -j1 2>&1 | %FileCheck -check-prefix=CHECK-INITIAL %s
6
+
7
+ // CHECK-INITIAL-NOT: warning
8
+ // CHECK-INITIAL: Job finished: {compile: main.o <= main.swift}
9
+ // CHECK-INITIAL: Job finished: {compile: file1.o <= file1.swift}
10
+ // CHECK-INITIAL: Job finished: {compile: file2.o <= file2.swift}
11
+ // CHECK-INITIAL: Job finished: {link: main <= main.o file1.o file2.o}
12
+
13
+ // RUN: touch -t 201401240006 %t/file2.swift
14
+ // RUN: cd %t && %swiftc_driver -driver-show-incremental -output-file-map %t/output-file-map.json -incremental main.swift file1.swift file2.swift -j1 2>&1 | %FileCheck -check-prefix=CHECK-REBUILD %s
15
+
16
+ // We should skip the main and file1 rebuilds here, but we should only note skipping them _once_
17
+ // CHECK-REBUILD: Job finished: {compile: file2.o <= file2.swift}
18
+ // CHECK-REBUILD: Job skipped: {compile: main.o <= main.swift}
19
+ // CHECK-REBUILD: Job skipped: {compile: file1.o <= file1.swift}
20
+ // CHECK-REBUILD: Job finished: {link: main <= main.o file1.o file2.o}
21
+ // CHECK-REBUILD-NOT: Job skipped:
You can’t perform that action at this time.
0 commit comments