apple / swift-format
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:
    • 7,856 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 362 duplicated lines
  • 66 duplicates
system4% (362 lines)
Duplication per Extension
swift4% (350 lines)
py9% (12 lines)
Duplication per Component (primary)
Sources/SwiftFormatPrettyPrint4% (138 lines)
Sources/SwiftFormatRules3% (82 lines)
Sources/generate-pipeline26% (60 lines)
ROOT16% (46 lines)
Sources/SwiftFormat4% (18 lines)
Sources/swift-format2% (12 lines)
Sources/SwiftFormatCore1% (6 lines)
Sources/SwiftFormatConfiguration0% (0 lines)
Sources/SwiftFormatTestSupport0% (0 lines)
Sources/SwiftFormatWhitespaceLinter0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 66 duplicates...
Size#FoldersFilesLinesCode
18 x 2 Sources/generate-pipeline
Sources/generate-pipeline
RuleNameCacheGenerator.swift
RuleRegistryGenerator.swift
19:41 (69%)
19:41 (69%)
view
18 x 2 Sources/generate-pipeline
Sources/generate-pipeline
PipelineGenerator.swift
RuleRegistryGenerator.swift
19:41 (28%)
19:41 (69%)
view
18 x 2 Sources/generate-pipeline
Sources/generate-pipeline
PipelineGenerator.swift
RuleNameCacheGenerator.swift
19:41 (28%)
19:41 (69%)
view
11 x 2 ROOT
ROOT
Package.swift
Package.swift
119:129 (7%)
131:141 (7%)
view
10 x 2 Sources/SwiftFormatPrettyPrint
Sources/SwiftFormatPrettyPrint
TokenStreamCreator.swift
TokenStreamCreator.swift
820:833 (<1%)
863:876 (<1%)
view
9 x 2 Sources/SwiftFormatPrettyPrint
Sources/SwiftFormatPrettyPrint
TokenStreamCreator.swift
TokenStreamCreator.swift
1215:1225 (<1%)
1449:1459 (<1%)
view
9 x 2 Sources/SwiftFormat
Sources/SwiftFormat
SwiftFormatter.swift
SwiftLinter.swift
58:68 (16%)
56:66 (18%)
view
9 x 2 Sources/SwiftFormatPrettyPrint
Sources/SwiftFormatPrettyPrint
TokenStreamCreator.swift
TokenStreamCreator.swift
2694:2704 (<1%)
2724:2734 (<1%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
94:101 (6%)
120:127 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
42:49 (6%)
68:75 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
81:88 (6%)
146:153 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
26:36 (6%)
107:114 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
81:88 (6%)
133:140 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
26:36 (6%)
94:101 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
107:114 (6%)
120:127 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
42:49 (6%)
81:88 (6%)
view
7 x 2 Sources/SwiftFormatPrettyPrint
Sources/SwiftFormatPrettyPrint
TokenStreamCreator.swift
TokenStreamCreator.swift
297:304 (<1%)
324:331 (<1%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
94:101 (6%)
107:114 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
42:49 (6%)
94:101 (6%)
view
7 x 2 Sources/SwiftFormatRules
Sources/SwiftFormatRules
AddModifierRewriter.swift
AddModifierRewriter.swift
107:114 (6%)
133:140 (6%)
view