hhvm / hhast
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
  • 39% duplication:
    • 48,260 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 19,014 duplicated lines
  • 54,188 duplicates
system39% (19,014 lines)
Duplication per Extension
hack39% (19,014 lines)
Duplication per Component (primary)
codegen/syntax59% (17,362 lines)
codegen/tokens31% (595 lines)
codegen12% (568 lines)
src/Linters6% (228 lines)
src/nodes8% (90 lines)
src/__Private/LSPImpl10% (53 lines)
src/__Private1% (38 lines)
src/__Private/LSPLib5% (26 lines)
src/Migrations1% (24 lines)
src/__Private/codegen<1% (12 lines)
src/__Private/Resolution8% (12 lines)
src1% (6 lines)
src/__Private/nodes0% (0 lines)
src/__Private/LSP0% (0 lines)
src/__Private/Wrap0% (0 lines)

Duplication Between Components (50+ lines)

G codegen/syntax codegen/syntax src/nodes src/nodes codegen/syntax--src/nodes 3389

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 54,188 duplicates...
Size#FoldersFilesLinesCode
83 x 2 codegen/syntax
codegen/syntax
62:200 (64%)
60:198 (65%)
view
77 x 2 codegen/syntax
codegen/syntax
187:331 (34%)
187:331 (34%)
view
75 x 2 codegen/syntax
codegen/syntax
187:375 (33%)
187:373 (33%)
view
75 x 2 codegen/syntax
codegen/syntax
187:342 (33%)
187:373 (33%)
view
75 x 2 codegen/syntax
codegen/syntax
187:342 (33%)
187:375 (33%)
view
73 x 2 codegen/syntax
codegen/syntax
184:324 (33%)
184:330 (33%)
view
62 x 2 codegen/syntax
codegen/syntax
62:149 (47%)
62:149 (47%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
54 x 2 codegen/syntax
codegen/syntax
88:146 (24%)
88:146 (24%)
view
53 x 2 codegen/syntax
codegen/syntax
86:143 (24%)
86:143 (24%)
view
53 x 2 codegen/syntax
codegen/syntax
86:143 (24%)
86:143 (24%)
view
53 x 2 codegen/syntax
codegen/syntax
86:143 (24%)
86:143 (24%)
view
44 x 2 codegen/syntax
codegen/syntax
62:110 (34%)
62:110 (34%)
view
44 x 2 codegen/syntax
codegen/syntax
62:110 (34%)
64:112 (33%)
view
44 x 2 codegen/syntax
codegen/syntax
62:110 (34%)
64:112 (33%)
view
43 x 2 codegen/syntax
codegen/syntax
38:102 (67%)
41:105 (64%)
view
43 x 2 codegen/syntax
codegen/syntax
38:102 (67%)
40:104 (65%)
view
43 x 2 codegen/syntax
codegen/syntax
41:105 (64%)
40:104 (65%)
view
43 x 2 codegen/syntax
codegen/syntax
62:109 (33%)
64:111 (33%)
view
40 x 2 codegen/syntax
codegen/syntax
187:262 (17%)
187:262 (17%)
view
40 x 2 codegen/syntax
codegen/syntax
187:262 (17%)
187:262 (17%)
view
40 x 2 codegen/syntax
codegen/syntax
187:262 (17%)
187:262 (17%)
view
40 x 2 codegen/syntax
codegen/syntax
68:112 (30%)
66:110 (31%)
view
40 x 2 codegen/syntax
codegen/syntax
187:262 (17%)
187:262 (17%)
view
40 x 2 codegen/syntax
codegen/syntax
66:110 (31%)
68:112 (30%)
view
40 x 2 codegen/syntax
codegen/syntax
187:262 (17%)
187:262 (17%)
view
40 x 2 codegen/syntax
codegen/syntax
68:112 (30%)
68:112 (30%)
view
40 x 2 codegen/syntax
codegen/syntax
68:112 (30%)
68:112 (30%)
view
40 x 2 codegen/syntax
codegen/syntax
187:262 (17%)
187:262 (17%)
view
39 x 2 codegen/syntax
codegen/syntax
184:258 (17%)
184:262 (17%)
view
39 x 2 codegen/syntax
codegen/syntax
184:262 (17%)
184:264 (17%)
view
37 x 2 codegen/syntax
codegen/syntax
50:90 (38%)
50:90 (38%)
view
35 x 2 codegen/syntax
codegen/syntax
50:88 (37%)
50:88 (37%)
view
34 x 2 codegen/syntax
codegen/syntax
61:98 (26%)
62:99 (26%)
view
34 x 2 codegen/syntax
codegen/syntax
61:98 (26%)
64:101 (26%)
view
31 x 2 codegen/syntax
codegen/syntax
92:126 (14%)
93:127 (14%)
view
31 x 2 codegen/syntax
codegen/syntax
54:88 (33%)
54:88 (33%)
view
31 x 2 codegen/syntax
codegen/syntax
92:126 (14%)
93:127 (14%)
view
31 x 2 codegen/syntax
codegen/syntax
54:88 (32%)
54:88 (33%)
view
31 x 2 codegen/syntax
codegen/syntax
92:126 (14%)
93:127 (14%)
view
28 x 2 codegen/syntax
codegen/syntax
83:114 (15%)
82:113 (15%)
view
27 x 2 codegen/syntax
codegen/syntax
54:84 (27%)
54:84 (28%)
view
Duplicated Units
The list of top 42 duplicated units.
See data for all 42 unit duplicates...
Size#FoldersFilesLinesCode
66 x 3 codegen/syntax
codegen/syntax
codegen/syntax
40:107 
40:107 
40:107 
view
66 x 5 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
42:109 
42:109 
42:109 
42:109 
42:109 
view
46 x 2 codegen/syntax
codegen/syntax
36:83 
34:81 
view
46 x 2 codegen/syntax
codegen/syntax
36:83 
36:83 
view
46 x 4 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
36:83 
34:81 
34:81 
36:83 
view
46 x 2 codegen/syntax
codegen/syntax
34:81 
34:81 
view
36 x 2 codegen/syntax
codegen/syntax
31:68 
31:68 
view
36 x 2 codegen/syntax
codegen/syntax
31:68 
31:68 
view
36 x 2 codegen/syntax
codegen/syntax
31:68 
31:68 
view
36 x 2 codegen/syntax
codegen/syntax
31:68 
31:68 
view
22 x 2 codegen/syntax
codegen/syntax
30:53 
28:51 
view
20 x 2 codegen/syntax
codegen/syntax
93:114 
91:112 
view
19 x 2 codegen/syntax
codegen/syntax
94:114 
94:114 
view
12 x 2 codegen/syntax
codegen/syntax
265:278 
265:278 
view
11 x 3 codegen/syntax
codegen/syntax
codegen/syntax
65:77 
64:76 
62:74 
view
10 x 4 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
156:167 
156:167 
156:167 
159:170 
view
10 x 4 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
191:202 
191:202 
191:202 
194:205 
view
10 x 4 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
226:237 
226:237 
226:237 
229:240 
view
10 x 4 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
267:278 
261:272 
265:276 
264:275 
view
10 x 4 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
302:313 
296:307 
300:311 
299:310 
view
10 x 5 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
159:170 
159:170 
159:170 
159:170 
159:170 
view
10 x 5 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
194:205 
194:205 
194:205 
194:205 
194:205 
view
10 x 5 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
229:240 
229:240 
229:240 
229:240 
229:240 
view
10 x 3 codegen/syntax
codegen/syntax
codegen/syntax
265:276 
265:276 
265:276 
view
10 x 5 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
313:324 
346:357 
302:313 
344:355 
302:313 
view
9 x 2 codegen/syntax
codegen/syntax
144:154 
138:148 
view
9 x 2 codegen/syntax
codegen/syntax
178:188 
178:188 
view
9 x 2 codegen/syntax
codegen/syntax
212:222 
213:223 
view
9 x 2 codegen/syntax
codegen/syntax
21:31 
21:31 
view
9 x 2 codegen/syntax
codegen/syntax
21:31 
21:31 
view
8 x 4 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
110:119 
110:119 
110:119 
109:118 
view
8 x 5 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
112:121 
112:121 
112:121 
112:121 
112:121 
view
7 x 2 codegen/syntax
codegen/syntax
99:107 
98:106 
view
6 x 3 codegen/syntax
codegen/syntax
codegen/syntax
84:91 
83:90 
81:88 
view
6 x 3 codegen/syntax
codegen/syntax
codegen/syntax
86:93 
84:91 
83:90 
view
6 x 2 codegen/syntax
codegen/syntax
84:91 
92:99 
view
6 x 5 codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
codegen/syntax
82:89 
86:93 
84:91 
84:91 
86:93 
view
6 x 3 codegen/syntax
codegen/syntax
codegen/syntax
86:93 
86:93 
86:93 
view
6 x 2 codegen/syntax
codegen/syntax
84:91 
84:91 
view
6 x 2 codegen/syntax
codegen/syntax
149:156 
149:156 
view
6 x 113 codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
...
12:19 
12:19 
12:19 
12:19 
12:19 
12:19 
12:19 
12:19 
12:19 
12:19 
...
view
6 x 25 codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
codegen/tokens
...
12:19 
12:19 
14:21 
14:21 
12:19 
12:19 
12:19 
17:24 
12:19 
14:21 
...
view