apple / swift-driver
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 4% duplication:
    • 18,754 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 920 duplicated lines
  • 92 duplicates
system4% (920 lines)
Duplication per Extension
swift4% (738 lines)
yaml44% (168 lines)
py3% (14 lines)
Duplication per Component (primary)
Sources/SwiftDriver4% (590 lines)
TestInputs/Incremental44% (168 lines)
ROOT55% (136 lines)
Utilities3% (14 lines)
Sources/SwiftDriverExecution2% (12 lines)
Sources/CSwiftScan0% (0 lines)
Sources/SwiftOptions0% (0 lines)
Sources/makeOptions0% (0 lines)
Sources/swift-build-sdk-interfaces0% (0 lines)
Sources/swift-driver0% (0 lines)
Sources/swift-help0% (0 lines)
TestInputs/ExplicitModuleBuilds0% (0 lines)
cmake/modules0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 92 duplicates...
Size#FoldersFilesLinesCode
43 x 2 Sources/SwiftDriver/Toolchains
Sources/SwiftDriver/Toolchains
GenericUnixToolchain.swift
WebAssemblyToolchain.swift
51:109 (67%)
75:133 (50%)
view
36 x 2 ROOT
ROOT
Package.swift
Package@swift-5.5.swift
7:44 (32%)
7:44 (27%)
view
21 x 2 Sources/SwiftDriver/IncrementalCompilation
Sources/SwiftDriver/IncrementalCompilation
ModuleDependencyGraph.swift
SourceFileDependencyGraph.swift
1285:1305 (2%)
344:364 (7%)
view
20 x 2 Sources/SwiftDriver/Utilities
Sources/SwiftDriver/Utilities
FileType.swift
FileType.swift
175:203 (9%)
306:325 (9%)
view
14 x 2 Sources/SwiftDriver/Jobs
Sources/SwiftDriver/Jobs
GenericUnixToolchain+LinkerSupport.swift
WebAssemblyToolchain+LinkerSupport.swift
50:63 (8%)
16:29 (16%)
view
13 x 2 ROOT
ROOT
Package.swift
Package@swift-5.5.swift
73:88 (11%)
84:99 (9%)
view
12 x 2 Sources/SwiftDriver/Toolchains
Sources/SwiftDriver/Toolchains
DarwinToolchain.swift
WebAssemblyToolchain.swift
75:91 (4%)
104:120 (13%)
view
12 x 2 Sources/SwiftDriver/Toolchains
Sources/SwiftDriver/Toolchains
DarwinToolchain.swift
GenericUnixToolchain.swift
75:91 (4%)
80:96 (18%)
view
11 x 2 Sources/SwiftDriver/Jobs
Sources/SwiftDriver/Jobs
DarwinToolchain+LinkerSupport.swift
WebAssemblyToolchain+LinkerSupport.swift
198:208 (3%)
16:26 (12%)
view
11 x 2 Sources/SwiftDriver/Jobs
Sources/SwiftDriver/Jobs
DarwinToolchain+LinkerSupport.swift
GenericUnixToolchain+LinkerSupport.swift
198:208 (3%)
50:60 (6%)
view
10 x 2 Sources/SwiftDriver/Jobs
Sources/SwiftDriver/Jobs
DarwinToolchain+LinkerSupport.swift
DarwinToolchain+LinkerSupport.swift
216:225 (3%)
229:238 (3%)
view
10 x 2 Sources/SwiftDriver/SwiftScan
Sources/SwiftDriver/SwiftScan
SwiftScan.swift
SwiftScan.swift
99:108 (3%)
127:136 (3%)
view
10 x 2 Sources/SwiftDriver/Toolchains
Sources/SwiftDriver/Toolchains
DarwinToolchain.swift
GenericUnixToolchain.swift
50:64 (3%)
51:65 (15%)
view
10 x 2 Sources/SwiftDriver/Toolchains
Sources/SwiftDriver/Toolchains
DarwinToolchain.swift
WebAssemblyToolchain.swift
50:64 (3%)
75:89 (11%)
view
10 x 2 Sources/SwiftDriver/Jobs
Sources/SwiftDriver/Jobs
CompileJob.swift
CompileJob.swift
178:188 (3%)
197:207 (3%)
view
10 x 2 Sources/SwiftDriver/Utilities
Sources/SwiftDriver/Utilities
FileType.swift
FileType.swift
157:170 (4%)
296:305 (4%)
view
10 x 2 ROOT
ROOT
Package.swift
Package@swift-5.5.swift
115:125 (9%)
132:142 (7%)
view
9 x 2 Sources/SwiftDriver/Jobs
Sources/SwiftDriver/Toolchains
GenericUnixToolchain+LinkerSupport.swift
Toolchain.swift
51:59 (5%)
75:83 (6%)
view
9 x 2 Sources/SwiftDriver/Jobs
Sources/SwiftDriver/Toolchains
WebAssemblyToolchain+LinkerSupport.swift
Toolchain.swift
17:25 (10%)
75:83 (6%)
view
9 x 2 ROOT
ROOT
Package.swift
Package@swift-5.5.swift
136:147 (8%)
158:169 (6%)
view