apple / swift-experimental-string-processing
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
  • 20% duplication:
    • 18,304 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 3,668 duplicated lines
  • 19,011 duplicates
system20% (3,668 lines)
Duplication per Extension
swift20% (3,668 lines)
Duplication per Component (primary)
Sources/_StringProcessing/RegexDSL62% (3,312 lines)
Sources/_StringProcessing/Algorithms15% (244 lines)
Sources/_StringProcessing/Legacy8% (56 lines)
Sources/_MatchingEngine/Regex<1% (27 lines)
Sources/_StringProcessing<1% (15 lines)
Sources/Prototypes/PTCaRet11% (14 lines)
ROOT0% (0 lines)
Sources/Exercises0% (0 lines)
Sources/Exercises/Participants0% (0 lines)
Sources/PatternConverter0% (0 lines)
Sources/Prototypes/Combinators0% (0 lines)
Sources/Prototypes/PEG0% (0 lines)
Sources/Prototypes/TourOfTypes0% (0 lines)
Sources/VariadicsGenerator0% (0 lines)
Sources/_MatchingEngine/Engine0% (0 lines)
Sources/_MatchingEngine/Utility0% (0 lines)
Sources/_Unicode0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 19,011 duplicates...
Size#FoldersFilesLinesCode
23 x 2 Sources/_StringProcessing/Algorithms/Algorithms
Sources/_StringProcessing/Algorithms/Algorithms
Replace.swift
Replace.swift
78:104 (16%)
119:145 (16%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
4116:4132 (<1%)
5078:5094 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
4116:4132 (<1%)
5104:5120 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5052:5068 (<1%)
5442:5458 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5052:5068 (<1%)
5468:5484 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5026:5042 (<1%)
5468:5484 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5312:5328 (<1%)
5546:5562 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
3778:3794 (<1%)
5780:5796 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5052:5068 (<1%)
5494:5510 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5312:5328 (<1%)
5520:5536 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
4116:4132 (<1%)
5052:5068 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
3778:3794 (<1%)
5806:5822 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5026:5042 (<1%)
5442:5458 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5052:5068 (<1%)
5520:5536 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5026:5042 (<1%)
5520:5536 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5780:5796 (<1%)
5884:5900 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
4506:4522 (<1%)
6248:6264 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
3778:3794 (<1%)
5728:5744 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5052:5068 (<1%)
5546:5562 (<1%)
view
14 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
5780:5796 (<1%)
5858:5874 (<1%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
10 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
3181:3191 
3207:3217 
view
9 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
1579:1588 
1604:1613 
view
8 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
809:817 
833:841 
view
7 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
439:446 
462:469 
view
6 x 2 Sources/_StringProcessing/RegexDSL
Sources/_StringProcessing/RegexDSL
Concatenation.swift
Concatenation.swift
261:267 
283:289 
view