facebookexperimental / starlark-rust
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
  • 13% duplication:
    • 33,269 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 4,564 duplicated lines
  • 15,908 duplicates
system13% (4,564 lines)
Duplication per Extension
rs13% (4,564 lines)
Duplication per Component (primary)
starlark/src/values15% (1,641 lines)
starlark/src/eval13% (1,364 lines)
starlark/src/stdlib12% (350 lines)
starlark/src/syntax10% (236 lines)
starlark/src/collections13% (203 lines)
starlark_derive/src13% (202 lines)
starlark/src/analysis15% (197 lines)
starlark/src/environment13% (122 lines)
starlark/src/debug26% (66 lines)
starlark/src/assert9% (52 lines)
starlark/src13% (50 lines)
starlark/src/errors16% (33 lines)
starlark/src/macros29% (32 lines)
starlark17% (16 lines)
benchmark0% (0 lines)
ROOT0% (0 lines)
starlark_derive0% (0 lines)
vscode/client/src0% (0 lines)

Duplication Between Components (50+ lines)

G starlark/src/eval starlark/src/eval starlark/src/values starlark/src/values starlark/src/eval--starlark/src/values 1796 starlark/src/stdlib starlark/src/stdlib starlark/src/eval--starlark/src/stdlib 1041 starlark/src/syntax starlark/src/syntax starlark/src/eval--starlark/src/syntax 1051 starlark_derive/src starlark_derive/src starlark/src/eval--starlark_derive/src 993 starlark/src/macros starlark/src/macros starlark/src/eval--starlark/src/macros 842 starlark/src/values--starlark_derive/src 1006 starlark/src/stdlib--starlark/src/values 1120 starlark/src/stdlib--starlark/src/syntax 340 starlark/src/stdlib--starlark_derive/src 323 starlark/src/syntax--starlark/src/values 1084 starlark/src/syntax--starlark_derive/src 307 starlark/src/collections starlark/src/collections starlark/src/collections--starlark/src/eval 1006 starlark/src/collections--starlark/src/values 1042 starlark/src/collections--starlark/src/stdlib 324 starlark/src/collections--starlark/src/syntax 308 starlark/src/environment starlark/src/environment starlark/src/collections--starlark/src/environment 254 starlark/src/collections--starlark_derive/src 320 starlark/src/debug starlark/src/debug starlark/src/collections--starlark/src/debug 224 starlark/src/environment--starlark/src/eval 945 starlark/src/environment--starlark/src/values 1029 starlark/src/environment--starlark/src/stdlib 274 starlark/src/environment--starlark/src/syntax 258 starlark/src/environment--starlark_derive/src 248 starlark/src/analysis starlark/src/analysis starlark/src/analysis--starlark/src/eval 973 starlark/src/analysis--starlark/src/values 993 starlark/src/analysis--starlark/src/stdlib 302 starlark/src/analysis--starlark/src/syntax 286 starlark/src/analysis--starlark/src/collections 304 starlark/src/analysis--starlark/src/environment 232 starlark/src/analysis--starlark_derive/src 304 starlark/src/analysis--starlark/src/debug 208 starlark/src starlark/src starlark/src--starlark/src/eval 893 starlark/src--starlark/src/values 968 starlark/src--starlark/src/stdlib 226 starlark/src--starlark/src/syntax 210 starlark/src--starlark/src/collections 212 starlark/src/debug--starlark/src/eval 899 starlark/src/debug--starlark/src/values 912 starlark/src/debug--starlark/src/stdlib 222 starlark/src/debug--starlark_derive/src 224 starlark/src/errors starlark/src/errors starlark/src/errors--starlark/src/eval 871 starlark/src/errors--starlark/src/values 900 starlark/src/assert starlark/src/assert starlark/src/assert--starlark/src/eval 874 starlark/src/assert--starlark/src/values 894 starlark/src/assert--starlark/src/stdlib 206 starlark/src/assert--starlark/src/collections 208 starlark/src/assert--starlark_derive/src 208 starlark/src/macros--starlark/src/values 862 starlark starlark starlark--starlark/src/eval 750 starlark--starlark/src/values 850

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 15,908 duplicates...
Size#FoldersFilesLinesCode
43 x 2 starlark/src/values
starlark/src/values
1105:1149 (4%)
1175:1219 (4%)
view
26 x 2 starlark/src/values
starlark/src/values
678:703 (3%)
781:806 (3%)
view
21 x 2 starlark/src/values/types
starlark/src/values/types
1:27 (25%)
1:30 (11%)
view
21 x 2 starlark/src/collections
starlark/src/collections
1:27 (3%)
1:22 (10%)
view
20 x 2 starlark/src/eval/bc/compiler
starlark/src/eval/bc/compiler
1:23 (38%)
1:23 (22%)
view
20 x 2 starlark/src/analysis
starlark/src/analysis
1:22 (12%)
1:22 (24%)
view
19 x 2 starlark/src/eval/runtime
starlark/src/eval/runtime
1:20 (13%)
1:20 (14%)
view
19 x 2 starlark/src/eval/bc/compiler
starlark/src/eval/bc
1:20 (14%)
1:22 (35%)
view
18 x 2 starlark/src/values/types
starlark/src/values/types
1:21 (4%)
1:21 (3%)
view
18 x 2 starlark_derive/src
starlark_derive/src
1:19 (4%)
1:19 (51%)
view
18 x 2 starlark/src/eval/bc
starlark/src/values/layout
1:21 (24%)
1:19 (12%)
view
18 x 2 starlark/src/eval/bc
starlark/src/eval/runtime
1:21 (4%)
1:28 (15%)
view
18 x 2 starlark/src/collections
starlark/src/values/layout
1:19 (8%)
1:33 (3%)
view
18 x 2 starlark/src/collections
starlark/src/values/types
1:19 (8%)
1:27 (9%)
view
18 x 2 starlark/src/eval/runtime
starlark/src/values/types
1:19 (3%)
1:45 (6%)
view
18 x 2 starlark/src/eval/bc
starlark/src/eval/runtime
1:21 (24%)
1:28 (15%)
view
18 x 2 starlark/src/values/types
starlark/src/values/types
1:21 (5%)
1:38 (7%)
view
18 x 2 starlark/src/values/types
starlark/src/values/types
1:21 (5%)
1:21 (8%)
view
18 x 2 starlark/src/eval/bc
starlark/src/eval/bc
1:21 (24%)
1:21 (4%)
view
18 x 2 starlark/src/environment
starlark/src/values
1:24 (6%)
1:19 (20%)
view
18 x 2 starlark/src/eval/runtime
starlark/src/values/layout
1:28 (15%)
1:19 (12%)
view
18 x 2 starlark/src/values/types
starlark/src/values/types
1:38 (7%)
1:21 (8%)
view
18 x 2 starlark/src/collections
starlark/src/values/types
1:24 (2%)
1:24 (21%)
view
18 x 2 starlark/src/stdlib
starlark/src/stdlib
1:20 (13%)
1:20 (69%)
view
18 x 2 starlark/src/collections
starlark/src/values/types
1:19 (8%)
1:24 (21%)
view
18 x 2 starlark/src/collections
starlark/src/values/layout
1:24 (2%)
1:33 (3%)
view
18 x 2 starlark/src/eval/fragment
starlark/src/values/types
1:21 (3%)
1:23 (7%)
view
18 x 2 starlark/src/values/layout
starlark/src/values/types
1:33 (3%)
1:24 (21%)
view
18 x 2 starlark/src/values
starlark/src/values/types
1:32 (5%)
1:21 (3%)
view
18 x 2 starlark/src/eval/bc
starlark/src/values/layout
1:21 (4%)
1:19 (12%)
view
18 x 2 starlark/src/collections
starlark/src/values/types
1:24 (2%)
1:27 (9%)
view
18 x 2 starlark/src/eval/bc
starlark/src/eval/fragment
1:21 (33%)
1:21 (16%)
view
18 x 2 starlark/src/values
starlark/src/values/types
1:32 (5%)
1:21 (4%)
view
18 x 2 starlark/src/eval/bc/compiler
starlark/src/eval/fragment
1:19 (13%)
1:21 (16%)
view
18 x 2 starlark/src/values/layout
starlark/src/values/types
1:33 (3%)
1:27 (9%)
view
18 x 2 starlark/src/eval/bc
starlark/src/stdlib
1:21 (6%)
1:19 (6%)
view
18 x 2 starlark/src/assert
starlark/src/assert
1:23 (3%)
1:24 (26%)
view
17 x 2 starlark/src/syntax
starlark/src/values
1:20 (3%)
1:18 (18%)
view
17 x 2 starlark/src/values/layout
starlark/src/values/types
1:18 (2%)
1:22 (7%)
view
17 x 2 starlark/src/eval/bc
starlark/src/eval/runtime
1:20 (4%)
1:18 (4%)
view
17 x 2 starlark/src/eval/bc
starlark/src/values/types
1:20 (13%)
1:44 (6%)
view
17 x 2 starlark/src/collections
starlark/src/stdlib
1:18 (10%)
1:18 (5%)
view
17 x 2 starlark/src/values/types
starlark/src/values/types
1:20 (6%)
1:44 (6%)
view
17 x 2 starlark/src/eval/runtime
starlark/src/values
1:18 (11%)
1:18 (18%)
view
17 x 2 starlark/src/eval/runtime
starlark/src/values/layout
1:20 (24%)
1:18 (12%)
view
17 x 2 starlark/src/debug
starlark/src/eval/runtime/profile
1:18 (44%)
1:18 (68%)
view
17 x 2 starlark/src/collections
starlark/src/collections
1:18 (13%)
1:23 (2%)
view
17 x 2 starlark/src/values/types
starlark/src/values/types
1:37 (7%)
1:20 (3%)
view
17 x 2 starlark/src/values/layout
starlark/src/values/types
1:18 (12%)
1:22 (7%)
view
17 x 2 starlark/src
starlark/src/values/layout
1:24 (7%)
1:32 (2%)
view
Duplicated Units
The list of top 1 duplicated units.
See data for all 1 unit duplicate
Size#FoldersFilesLinesCode
6 x 2 starlark/src/values/types
starlark/src/values/types
250:257 
349:356 
view