awslabs / smithy-swift
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
  • 8% duplication:
    • 9,851 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 790 duplicated lines
  • 85 duplicates
system8% (790 lines)
Duplication per Extension
kt6% (437 lines)
swift10% (353 lines)
Duplication per Component (primary)
smithy-swift-codegen/src6% (437 lines)
Packages/ClientRuntime9% (244 lines)
Packages/SmithyTestUtil8% (47 lines)
Packages46% (31 lines)
ROOT34% (31 lines)
buildSrc/src0% (0 lines)
buildSrc0% (0 lines)
smithy-swift-codegen0% (0 lines)
smithy-swift-codegen-test0% (0 lines)
smithy-swift-codegen-test/expected0% (0 lines)

Duplication Between Components (50+ lines)

G ROOT ROOT Packages Packages ROOT--Packages 62

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 85 duplicates...
Size#FoldersFilesLinesCode
34 x 2 Packages/ClientRuntime/S...ization/FormURL/Encoder
Packages/ClientRuntime/S...ization/FormURL/Encoder
FormURLSingleValueEncoding.swift
FormURLUnkeyedEncoding.swift
18:81 (87%)
20:83 (66%)
view
12 x 2 ROOT
Packages
Package.swift
Package.swift
3:15 (25%)
11:23 (22%)
view
12 x 2 smithy-swift-codegen/src...tegration/serde/formurl
smithy-swift-codegen/src...n/integration/serde/xml
MemberShapeEncodeFormURLGenerator.kt
MemberShapeEncodeXMLGenerator.kt
250:265 (4%)
233:248 (4%)
view
12 x 2 smithy-swift-codegen/src...tegration/serde/formurl
smithy-swift-codegen/src...n/integration/serde/xml
StructEncodeFormURLGenerator.kt
StructDecodeXMLGenerator.kt
49:65 (30%)
44:59 (24%)
view
11 x 2 smithy-swift-codegen/src...tegration/serde/formurl
smithy-swift-codegen/src...n/integration/serde/xml
MemberShapeEncodeFormURLGenerator.kt
MemberShapeEncodeXMLGenerator.kt
102:114 (4%)
101:113 (4%)
view
11 x 2 Packages/ClientRuntime/S...orking/Http/Middlewares
Packages/ClientRuntime/S...orking/Http/Middlewares
ContentLengthMiddleware.swift
ContentMD5Middleware.swift
10:22 (37%)
12:24 (33%)
view
11 x 2 Packages/SmithyTestUtil/Sources/RequestTestUtil
Packages/SmithyTestUtil/Sources/RequestTestUtil
MockBuildMiddleware.swift
MockFinalizeMiddleware.swift
20:34 (55%)
20:34 (55%)
view
11 x 2 ROOT
Packages
Package.swift
Package.swift
17:27 (23%)
24:34 (20%)
view
10 x 2 Packages/SmithyTestUtil/Sources/RequestTestUtil
Packages/SmithyTestUtil/Sources/RequestTestUtil
MockFinalizeMiddleware.swift
MockInitializeMiddleware.swift
20:31 (50%)
20:31 (45%)
view
10 x 2 Packages/SmithyTestUtil/Sources/RequestTestUtil
Packages/SmithyTestUtil/Sources/RequestTestUtil
MockBuildMiddleware.swift
MockInitializeMiddleware.swift
20:31 (50%)
20:31 (45%)
view
10 x 2 smithy-swift-codegen/src...tegration/serde/formurl
smithy-swift-codegen/src...n/integration/serde/xml
MemberShapeEncodeFormURLGenerator.kt
MemberShapeEncodeXMLGenerator.kt
198:211 (3%)
193:206 (3%)
view
10 x 2 smithy-swift-codegen/src...n/integration/serde/xml
smithy-swift-codegen/src...n/integration/serde/xml
StructDecodeXMLGenerator.kt
UnionDecodeXMLGenerator.kt
45:58 (20%)
40:53 (14%)
view
10 x 2 smithy-swift-codegen/src...tegration/serde/formurl
smithy-swift-codegen/src...n/integration/serde/xml
StructEncodeFormURLGenerator.kt
UnionDecodeXMLGenerator.kt
50:64 (25%)
40:53 (14%)
view
9 x 2 Packages/ClientRuntime/Sources/Middleware/Steps
Packages/ClientRuntime/Sources/Middleware/Steps
BuildStep.swift
FinalizeStep.swift
23:38 (45%)
24:39 (45%)
view
9 x 2 smithy-swift-codegen/src...tegration/serde/formurl
smithy-swift-codegen/src...n/integration/serde/xml
MemberShapeEncodeFormURLGenerator.kt
MemberShapeEncodeXMLGenerator.kt
120:131 (3%)
119:130 (3%)
view
9 x 2 Packages/SmithyTestUtil/Sources/RequestTestUtil
Packages/SmithyTestUtil/Sources/RequestTestUtil
MockBuildMiddleware.swift
MockSerializeMiddleware.swift
21:31 (45%)
28:38 (25%)
view
9 x 2 Packages/SmithyTestUtil/Sources/RequestTestUtil
Packages/SmithyTestUtil/Sources/RequestTestUtil
MockInitializeMiddleware.swift
MockSerializeMiddleware.swift
21:31 (40%)
28:38 (25%)
view
9 x 2 Packages/SmithyTestUtil/Sources/RequestTestUtil
Packages/SmithyTestUtil/Sources/RequestTestUtil
MockFinalizeMiddleware.swift
MockSerializeMiddleware.swift
21:31 (45%)
28:38 (25%)
view
8 x 2 Packages/ClientRuntime/S...PrimitiveTypeExtensions
Packages/ClientRuntime/S...PrimitiveTypeExtensions
Number+Extension.swift
Number+Extension.swift
7:14 (44%)
20:27 (44%)
view
8 x 2 ROOT
Packages
Package.swift
Package.swift
29:36 (17%)
36:43 (14%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
9 x 2 Packages/ClientRuntime/S...PrimitiveTypeExtensions
Packages/ClientRuntime/S...PrimitiveTypeExtensions
Number+Extension.swift
Number+Extension.swift
7:16 
20:29 
view
7 x 2 smithy-swift-codegen/src...thy/swift/codegen/model
smithy-swift-codegen/src...thy/swift/codegen/model
HashableShapeTransformer.kt
RecursiveShapeBoxer.kt
19:26 
29:36 
view