apple / swift-collections
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
  • 16% duplication:
    • 12,268 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,983 duplicated lines
  • 262 duplicates
system16% (1,983 lines)
Duplication per Extension
swift16% (1,983 lines)
Duplication per Component (primary)
Sources/_CollectionsTestSupport26% (895 lines)
Benchmarks/Benchmarks27% (716 lines)
Sources/OrderedCollections7% (298 lines)
Sources/DequeModule4% (62 lines)
Sources/PriorityQueueModule2% (12 lines)
Benchmarks/CppBenchmarks0% (0 lines)
Benchmarks0% (0 lines)
Benchmarks/benchmark-tool0% (0 lines)
ROOT0% (0 lines)
Sources/Collections0% (0 lines)
cmake/modules0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 262 duplicates...
Size#FoldersFilesLinesCode
55 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRandomAccessCollection....
MinimalMutableRangeReplaceableRandomA...
58:138 (49%)
58:138 (37%)
view
41 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRandomAccessCollection....
MinimalRangeReplaceableRandomAccessCo...
58:119 (36%)
58:119 (34%)
view
41 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalRandomAccessCollection.swift
MinimalRangeReplaceableRandomAccessCo...
54:115 (56%)
58:119 (34%)
view
41 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRangeReplaceableRandomA...
MinimalRandomAccessCollection.swift
58:119 (27%)
54:115 (56%)
view
41 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRangeReplaceableRandomA...
MinimalRangeReplaceableRandomAccessCo...
58:119 (27%)
58:119 (34%)
view
41 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRandomAccessCollection....
MinimalRandomAccessCollection.swift
58:119 (36%)
54:115 (56%)
view
38 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRangeReplaceableRandomA...
MinimalRangeReplaceableRandomAccessCo...
182:247 (25%)
137:202 (32%)
view
30 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedDictionary
OrderedDictionary+Elements.swift
OrderedDictionary+Values.swift
155:271 (15%)
144:264 (28%)
view
29 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedDictionary
OrderedDictionary+Elements+SubSequenc...
OrderedDictionary+Elements.swift
175:290 (26%)
155:270 (14%)
view
29 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalBidirectionalCollection.swift
MinimalCollection.swift
61:103 (34%)
60:102 (35%)
view
29 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedDictionary
OrderedDictionary+Elements+SubSequenc...
OrderedDictionary+Values.swift
175:290 (26%)
144:263 (27%)
view
23 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedSet
OrderedDictionary+Elements+SubSequenc...
OrderedSet+RandomAccessCollection.swift
175:264 (20%)
111:200 (22%)
view
23 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedSet
OrderedDictionary+Values.swift
OrderedSet+SubSequence.swift
144:233 (21%)
155:244 (17%)
view
23 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedSet
OrderedDictionary+Values.swift
OrderedSet+RandomAccessCollection.swift
144:233 (21%)
111:200 (22%)
view
23 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedSet
OrderedDictionary+Elements.swift
OrderedSet+SubSequence.swift
155:244 (11%)
155:244 (17%)
view
23 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedSet
OrderedDictionary+Elements+SubSequenc...
OrderedSet+SubSequence.swift
175:264 (20%)
155:244 (17%)
view
23 x 2 Sources/OrderedCollections/OrderedSet
Sources/OrderedCollections/OrderedSet
OrderedSet+RandomAccessCollection.swift
OrderedSet+SubSequence.swift
111:200 (22%)
155:244 (17%)
view
23 x 2 Sources/OrderedCollections/OrderedDictionary
Sources/OrderedCollections/OrderedSet
OrderedDictionary+Elements.swift
OrderedSet+RandomAccessCollection.swift
155:244 (11%)
111:200 (22%)
view
19 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRangeReplaceableRandomA...
MinimalRangeReplaceableRandomAccessCo...
17:39 (12%)
17:39 (16%)
view
19 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalMutableRandomAccessCollection....
MinimalRangeReplaceableRandomAccessCo...
17:39 (16%)
17:39 (16%)
view
Duplicated Units
The list of top 1 duplicated units.
See data for all 1 unit duplicate
Size#FoldersFilesLinesCode
6 x 2 Sources/_CollectionsTestSupport/MinimalTypes
Sources/_CollectionsTestSupport/MinimalTypes
MinimalDecoder.swift
MinimalDecoder.swift
151:157 
377:383 
view