hhvm / hhast
File Change Frequency

File change frequency (churn) shows the distribution of file updates (days with at least one commit).

File Change Frequency Overall
File Change Frequency Overall
The number of recorded file updates
  • There are 766 files with 56,967 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 72 files changed 21-50 times (21,985 lines of code)
    • 180 files changed 6-20 times (24,848 lines of code)
    • 514 files changed 1-5 times (10,134 lines of code)
0% | 0% | 38% | 43% | 17%
Legend:
101+
51-100
21-50
6-20
1-5
explore: zoomable circles | data
File Change Frequency per File Extension
hack, in, json, md, php, txt, hh, gitignore, gitattributes, yml
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
hack0% | 0% | 38% | 43% | 17%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
codegen/syntax0% | 0% | 45% | 49% | 5%
codegen0% | 0% | 96% | 3% | 0%
src/__Private/codegen0% | 0% | 46% | 37% | 15%
src/__Private0% | 0% | 33% | 41% | 25%
src/Linters0% | 0% | 2% | 67% | 30%
src/Migrations0% | 0% | 0% | 52% | 47%
src/nodes0% | 0% | 0% | 78% | 21%
src0% | 0% | 0% | 53% | 46%
src/__Private/LSPImpl0% | 0% | 0% | 36% | 63%
codegen/tokens0% | 0% | 0% | 7% | 92%
src/__Private/Resolution0% | 0% | 0% | 61% | 38%
src/__Private/Wrap0% | 0% | 0% | 65% | 34%
src/__Private/LSP0% | 0% | 0% | 0% | 100%
src/__Private/LSPLib0% | 0% | 0% | 0% | 100%
src/__Private/nodes0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
version.hack
in codegen
4 - 81 1096 49 4
28 1 81 923 45 4
4126 - 81 1096 42 4
MigrationCLI.hack
in src/__Private
450 10 129 1157 38 7
LintRunConfig.hack
in src/__Private
288 13 127 1157 37 9
CodegenSyntax.hack
in src/__Private/codegen
639 15 129 1157 32 7
635 64 87 1096 31 5
218 1 81 1054 29 4
ClosureTypeSpecifier.hack
in codegen/syntax
580 59 129 1096 29 5
116 14 87 1096 28 5
BinaryExpression.hack
in codegen/syntax
157 19 129 1096 28 5
TupleExpression.hack
in codegen/syntax
202 24 129 1096 28 5
211 24 87 1096 28 5
262 29 87 1096 28 5
312 34 129 1096 28 5
AnonymousFunction.hack
in codegen/syntax
636 64 87 1096 28 5
ExpressionStatement.hack
in codegen/syntax
119 14 129 1096 27 5
ReturnStatement.hack
in codegen/syntax
156 19 129 1096 27 5
CastExpression.hack
in codegen/syntax
198 24 87 1096 27 5
VectorTypeSpecifier.hack
in codegen/syntax
257 29 129 1096 27 5
YieldExpression.hack
in codegen/syntax
114 14 87 1096 26 5
IsExpression.hack
in codegen/syntax
155 19 129 1096 26 5
FieldSpecifier.hack
in codegen/syntax
190 24 129 1096 26 5
ConstructorCall.hack
in codegen/syntax
214 24 87 1096 26 5
ParameterDeclaration.hack
in codegen/syntax
364 39 129 1096 26 5
257 29 87 1096 25 5
LambdaExpression.hack
in codegen/syntax
259 29 81 1096 25 5
262 29 129 1096 25 5
LambdaSignature.hack
in codegen/syntax
352 39 129 1096 25 5
DarrayTypeSpecifier.hack
in codegen/syntax
353 39 129 1096 25 5
LikeTypeSpecifier.hack
in codegen/syntax
114 14 129 1096 24 5
ElementInitializer.hack
in codegen/syntax
155 19 129 1096 24 5
CodegenRelations.hack
in src/__Private/codegen
166 5 129 1157 24 4
SubscriptExpression.hack
in codegen/syntax
209 24 87 1096 24 5
VarrayTypeSpecifier.hack
in codegen/syntax
257 29 129 1096 24 5
ForeachStatement.hack
in codegen/syntax
512 54 129 1096 24 5
TypeConstDeclaration.hack
in codegen/syntax
519 54 129 1096 24 5
SimpleTypeSpecifier.hack
in codegen/syntax
80 9 129 1096 23 5
114 14 129 1096 23 5
TypeConstraint.hack
in codegen/syntax
114 14 129 1096 23 5
160 19 129 1096 23 5
WhileStatement.hack
in codegen/syntax
257 29 129 1096 23 5
AliasDeclaration.hack
in codegen/syntax
407 44 129 1096 23 5
ForStatement.hack
in codegen/syntax
463 49 129 1096 23 5
ClassishDeclaration.hack
in codegen/syntax
654 64 129 1096 23 5
98 6 159 1157 22 6
SimpleInitializer.hack
in codegen/syntax
114 14 129 1096 22 5
InclusionExpression.hack
in codegen/syntax
116 14 129 1096 22 5
DecoratedExpression.hack
in codegen/syntax
118 14 129 1096 22 5
FieldInitializer.hack
in codegen/syntax
155 19 129 1096 22 5
Files With Most Contributors (Top 50)
Files sorted by the number of unique email addresses found in commits.

See data for all files...

File# lines# unitslast modified
(days ago)
created
(days ago)
# changes# contributors
version.hack
in codegen
4 - 81 1096 49 4
28 1 81 923 45 4
4126 - 81 1096 42 4
MigrationCLI.hack
in src/__Private
450 10 129 1157 38 7
LintRunConfig.hack
in src/__Private
288 13 127 1157 37 9
CodegenSyntax.hack
in src/__Private/codegen
639 15 129 1157 32 7
635 64 87 1096 31 5
218 1 81 1054 29 4
ClosureTypeSpecifier.hack
in codegen/syntax
580 59 129 1096 29 5
BinaryExpression.hack
in codegen/syntax
157 19 129 1096 28 5
312 34 129 1096 28 5
116 14 87 1096 28 5
AnonymousFunction.hack
in codegen/syntax
636 64 87 1096 28 5
262 29 87 1096 28 5
211 24 87 1096 28 5
TupleExpression.hack
in codegen/syntax
202 24 129 1096 28 5
CastExpression.hack
in codegen/syntax
198 24 87 1096 27 5
ReturnStatement.hack
in codegen/syntax
156 19 129 1096 27 5
ExpressionStatement.hack
in codegen/syntax
119 14 129 1096 27 5
VectorTypeSpecifier.hack
in codegen/syntax
257 29 129 1096 27 5
IsExpression.hack
in codegen/syntax
155 19 129 1096 26 5
ConstructorCall.hack
in codegen/syntax
214 24 87 1096 26 5
YieldExpression.hack
in codegen/syntax
114 14 87 1096 26 5
FieldSpecifier.hack
in codegen/syntax
190 24 129 1096 26 5
ParameterDeclaration.hack
in codegen/syntax
364 39 129 1096 26 5
257 29 87 1096 25 5
262 29 129 1096 25 5
LambdaExpression.hack
in codegen/syntax
259 29 81 1096 25 5
DarrayTypeSpecifier.hack
in codegen/syntax
353 39 129 1096 25 5
LambdaSignature.hack
in codegen/syntax
352 39 129 1096 25 5
CodegenRelations.hack
in src/__Private/codegen
166 5 129 1157 24 4
VarrayTypeSpecifier.hack
in codegen/syntax
257 29 129 1096 24 5
LikeTypeSpecifier.hack
in codegen/syntax
114 14 129 1096 24 5
SubscriptExpression.hack
in codegen/syntax
209 24 87 1096 24 5
TypeConstDeclaration.hack
in codegen/syntax
519 54 129 1096 24 5
ForeachStatement.hack
in codegen/syntax
512 54 129 1096 24 5
ElementInitializer.hack
in codegen/syntax
155 19 129 1096 24 5
ForStatement.hack
in codegen/syntax
463 49 129 1096 23 5
SimpleTypeSpecifier.hack
in codegen/syntax
80 9 129 1096 23 5
AliasDeclaration.hack
in codegen/syntax
407 44 129 1096 23 5
ClassishDeclaration.hack
in codegen/syntax
654 64 129 1096 23 5
114 14 129 1096 23 5
160 19 129 1096 23 5
WhileStatement.hack
in codegen/syntax
257 29 129 1096 23 5
TypeConstraint.hack
in codegen/syntax
114 14 129 1096 23 5
241 1 81 1054 22 3
157 19 129 1096 22 5
FieldInitializer.hack
in codegen/syntax
155 19 129 1096 22 5
InclusionExpression.hack
in codegen/syntax
116 14 129 1096 22 5
XHPClassAttribute.hack
in codegen/syntax
195 24 129 1096 22 5
Correlations

File Size vs. Number of Changes: 767 points

src/Linters/UnreachableCodeLinter.hack x: 39 lines of code y: 1 # changes src/__Private/LintRunCLIEventHandler.hack x: 196 lines of code y: 15 # changes codegen/inferred_relationships.hack x: 4126 lines of code y: 42 # changes codegen/node_from_json.hack x: 218 lines of code y: 29 # changes codegen/syntax/LambdaExpression.hack x: 259 lines of code y: 25 # changes codegen/syntax/ModuleDeclaration.hack x: 262 lines of code y: 1 # changes codegen/token_from_data.hack x: 241 lines of code y: 22 # changes codegen/tokens/ModuleToken.hack x: 12 lines of code y: 1 # changes codegen/version.hack x: 4 lines of code y: 49 # changes src/__Private/is_compatible_schema_version.hack x: 28 lines of code y: 45 # changes codegen/syntax/AnonymousFunction.hack x: 636 lines of code y: 28 # changes codegen/syntax/CastExpression.hack x: 198 lines of code y: 27 # changes codegen/syntax/CollectionLiteralExpression.hack x: 211 lines of code y: 28 # changes codegen/syntax/ConstDeclaration.hack x: 309 lines of code y: 21 # changes codegen/syntax/ConstructorCall.hack x: 214 lines of code y: 26 # changes codegen/syntax/EnumClassDeclaration.hack x: 635 lines of code y: 10 # changes codegen/syntax/EnumClassEnumerator.hack x: 260 lines of code y: 11 # changes codegen/syntax/FunctionDeclarationHeader.hack x: 635 lines of code y: 31 # changes codegen/syntax/IssetExpression.hack x: 212 lines of code y: 21 # changes codegen/syntax/MemberSelectionExpression.hack x: 158 lines of code y: 22 # changes codegen/syntax/NullableAsExpression.hack x: 157 lines of code y: 20 # changes codegen/syntax/PrefixUnaryExpression.hack x: 116 lines of code y: 28 # changes codegen/syntax/SubscriptExpression.hack x: 209 lines of code y: 24 # changes codegen/syntax/SwitchSection.hack x: 159 lines of code y: 19 # changes codegen/syntax/VectorIntrinsicExpression.hack x: 262 lines of code y: 28 # changes codegen/syntax/XHPEnumType.hack x: 256 lines of code y: 22 # changes codegen/syntax/YieldExpression.hack x: 114 lines of code y: 26 # changes src/Linters/GroupUseStatementsLinter.hack x: 461 lines of code y: 13 # changes src/__Private/LSPImpl/ExecuteCommandCommand.hack x: 43 lines of code y: 4 # changes src/__Private/LintRunConfig.hack x: 288 lines of code y: 37 # changes src/Linters/HHClientLinter.hack x: 109 lines of code y: 9 # changes src/Migrations/NodeTypeMigrationStep.hack x: 21 lines of code y: 2 # changes src/Migrations/TypedMigrationStep.hack x: 24 lines of code y: 6 # changes src/nodes/ListItem.hack x: 127 lines of code y: 7 # changes src/nodes/NodeList.hack x: 211 lines of code y: 16 # changes src/nodes/TokenWithFixedText.hack x: 48 lines of code y: 5 # changes src/nodes/TokenWithVariableText.hack x: 55 lines of code y: 3 # changes src/nodes/Node.hack x: 314 lines of code y: 17 # changes src/nodes/Trivia.hack x: 51 lines of code y: 6 # changes src/nodes/WrapperNode.hack x: 31 lines of code y: 8 # changes codegen/syntax/AliasDeclaration.hack x: 407 lines of code y: 23 # changes codegen/syntax/AnonymousClass.hack x: 471 lines of code y: 16 # changes codegen/syntax/AsExpression.hack x: 155 lines of code y: 21 # changes codegen/syntax/Attribute.hack x: 115 lines of code y: 7 # changes codegen/syntax/AttributeSpecification.hack x: 80 lines of code y: 16 # changes codegen/syntax/AttributizedSpecifier.hack x: 120 lines of code y: 12 # changes codegen/syntax/AwaitableCreationExpression.hack x: 163 lines of code y: 21 # changes codegen/syntax/BinaryExpression.hack x: 157 lines of code y: 28 # changes codegen/syntax/BreakStatement.hack x: 114 lines of code y: 19 # changes codegen/syntax/CaseLabel.hack x: 155 lines of code y: 20 # changes codegen/syntax/CatchClause.hack x: 302 lines of code y: 15 # changes codegen/syntax/ClassishDeclaration.hack x: 654 lines of code y: 23 # changes codegen/syntax/ClassnameTypeSpecifier.hack x: 260 lines of code y: 19 # changes codegen/syntax/ClosureParameterTypeSpecifier.hack x: 160 lines of code y: 23 # changes codegen/syntax/ClosureTypeSpecifier.hack x: 580 lines of code y: 29 # changes codegen/syntax/ConcurrentStatement.hack x: 115 lines of code y: 18 # changes codegen/syntax/ConstantDeclarator.hack x: 116 lines of code y: 16 # changes codegen/syntax/ContextAliasDeclaration.hack x: 405 lines of code y: 5 # changes codegen/syntax/ContextConstDeclaration.hack x: 463 lines of code y: 7 # changes codegen/syntax/ContextConstraint.hack x: 114 lines of code y: 5 # changes codegen/syntax/Contexts.hack x: 156 lines of code y: 7 # changes codegen/syntax/DarrayIntrinsicExpression.hack x: 264 lines of code y: 20 # changes codegen/syntax/DarrayTypeSpecifier.hack x: 353 lines of code y: 25 # changes codegen/syntax/DecoratedExpression.hack x: 118 lines of code y: 22 # changes codegen/syntax/DictionaryIntrinsicExpression.hack x: 264 lines of code y: 19 # changes codegen/syntax/DictionaryTypeSpecifier.hack x: 202 lines of code y: 19 # changes codegen/syntax/DoStatement.hack x: 353 lines of code y: 20 # changes codegen/syntax/ETSpliceExpression.hack x: 219 lines of code y: 4 # changes codegen/syntax/ElementInitializer.hack x: 155 lines of code y: 24 # changes codegen/syntax/ElseifClause.hack x: 255 lines of code y: 17 # changes codegen/syntax/EmbeddedBracedExpression.hack x: 169 lines of code y: 18 # changes codegen/syntax/EmbeddedMemberSelectionExpression.hack x: 155 lines of code y: 19 # changes codegen/syntax/EmbeddedSubscriptExpression.hack x: 213 lines of code y: 19 # changes codegen/syntax/EndOfFile.hack x: 78 lines of code y: 14 # changes codegen/syntax/EnumClassLabelExpression.hack x: 158 lines of code y: 3 # changes codegen/syntax/EnumDeclaration.hack x: 512 lines of code y: 22 # changes codegen/syntax/EnumUse.hack x: 157 lines of code y: 5 # changes codegen/syntax/Enumerator.hack x: 190 lines of code y: 17 # changes codegen/syntax/ErrorSyntax.hack x: 77 lines of code y: 17 # changes codegen/syntax/ExpressionStatement.hack x: 119 lines of code y: 27 # changes codegen/syntax/FieldInitializer.hack x: 155 lines of code y: 22 # changes codegen/syntax/FieldSpecifier.hack x: 190 lines of code y: 26 # changes codegen/syntax/FileAttributeSpecification.hack x: 265 lines of code y: 14 # changes codegen/syntax/FinallyClause.hack x: 114 lines of code y: 14 # changes codegen/syntax/ForStatement.hack x: 463 lines of code y: 23 # changes codegen/syntax/ForeachStatement.hack x: 512 lines of code y: 24 # changes codegen/syntax/FunctionCallExpression.hack x: 312 lines of code y: 28 # changes codegen/syntax/FunctionCtxTypeSpecifier.hack x: 114 lines of code y: 6 # changes codegen/syntax/FunctionDeclaration.hack x: 165 lines of code y: 19 # changes codegen/syntax/FunctionPointerExpression.hack x: 116 lines of code y: 8 # changes codegen/syntax/IfStatement.hack x: 355 lines of code y: 22 # changes codegen/syntax/IntersectionTypeSpecifier.hack x: 155 lines of code y: 9 # changes codegen/syntax/IsExpression.hack x: 155 lines of code y: 26 # changes codegen/syntax/KeysetIntrinsicExpression.hack x: 262 lines of code y: 22 # changes codegen/syntax/LikeTypeSpecifier.hack x: 114 lines of code y: 24 # changes codegen/syntax/ListExpression.hack x: 202 lines of code y: 21 # changes codegen/syntax/LiteralExpression.hack x: 79 lines of code y: 18 # changes codegen/syntax/MarkupSuffix.hack x: 123 lines of code y: 16 # changes codegen/syntax/MethodishDeclaration.hack x: 225 lines of code y: 18 # changes codegen/syntax/NamespaceEmptyBody.hack x: 78 lines of code y: 15 # changes codegen/syntax/NamespaceGroupUseDeclaration.hack x: 355 lines of code y: 17 # changes codegen/syntax/NamespaceUseDeclaration.hack x: 194 lines of code y: 17 # changes codegen/syntax/NullableTypeSpecifier.hack x: 114 lines of code y: 23 # changes codegen/syntax/OldAttributeSpecification.hack x: 166 lines of code y: 7 # changes codegen/syntax/ParameterDeclaration.hack x: 364 lines of code y: 26 # changes codegen/syntax/PipeVariableExpression.hack x: 82 lines of code y: 18 # changes codegen/syntax/PostfixUnaryExpression.hack x: 116 lines of code y: 21 # changes codegen/syntax/PropertyDeclarator.hack x: 117 lines of code y: 17 # changes codegen/syntax/QualifiedName.hack x: 82 lines of code y: 16 # changes codegen/syntax/ReturnStatement.hack x: 156 lines of code y: 27 # changes codegen/syntax/ShapeTypeSpecifier.hack x: 255 lines of code y: 21 # changes codegen/syntax/SimpleTypeSpecifier.hack x: 80 lines of code y: 23 # changes codegen/syntax/SoftTypeSpecifier.hack x: 112 lines of code y: 20 # changes codegen/syntax/SwitchStatement.hack x: 353 lines of code y: 21 # changes codegen/syntax/ThrowStatement.hack x: 155 lines of code y: 18 # changes codegen/syntax/TraitUse.hack x: 157 lines of code y: 15 # changes codegen/syntax/TraitUseAliasItem.hack x: 214 lines of code y: 20 # changes codegen/syntax/TraitUseConflictResolution.hack x: 262 lines of code y: 18 # changes codegen/syntax/TraitUsePrecedenceItem.hack x: 158 lines of code y: 16 # changes codegen/syntax/TryStatement.hack x: 215 lines of code y: 17 # changes codegen/syntax/TupleExpression.hack x: 202 lines of code y: 28 # changes codegen/syntax/TupleTypeExplicitSpecifier.hack x: 205 lines of code y: 20 # changes codegen/syntax/TypeConstDeclaration.hack x: 519 lines of code y: 24 # changes codegen/syntax/TypeParameter.hack x: 305 lines of code y: 21 # changes codegen/syntax/TypeParameters.hack x: 157 lines of code y: 14 # changes codegen/syntax/UnsetStatement.hack x: 255 lines of code y: 18 # changes codegen/syntax/UpcastExpression.hack x: 158 lines of code y: 2 # changes codegen/syntax/UsingStatementBlockScoped.hack x: 306 lines of code y: 19 # changes codegen/syntax/UsingStatementFunctionScoped.hack x: 212 lines of code y: 18 # changes codegen/syntax/VarrayIntrinsicExpression.hack x: 262 lines of code y: 25 # changes codegen/syntax/VarrayTypeSpecifier.hack x: 257 lines of code y: 24 # changes codegen/syntax/VectorTypeSpecifier.hack x: 257 lines of code y: 27 # changes codegen/syntax/WhereConstraint.hack x: 155 lines of code y: 17 # changes codegen/syntax/WhileStatement.hack x: 257 lines of code y: 23 # changes codegen/syntax/XHPCategoryDeclaration.hack x: 159 lines of code y: 18 # changes codegen/syntax/XHPClassAttribute.hack x: 195 lines of code y: 22 # changes codegen/syntax/XHPClose.hack x: 156 lines of code y: 16 # changes codegen/syntax/XHPLateinit.hack x: 114 lines of code y: 10 # changes codegen/syntax/XHPOpen.hack x: 199 lines of code y: 18 # changes codegen/syntax/YieldBreakStatement.hack x: 155 lines of code y: 4 # changes src/__Private/codegen/CodegenSyntax.hack x: 639 lines of code y: 32 # changes src/__Private/LSPImpl/Server.hack x: 129 lines of code y: 11 # changes src/__Private/LSPImpl/read_message_async.hack x: 26 lines of code y: 7 # changes src/__Private/LSPLib/ServerState.hack x: 36 lines of code y: 3 # changes src/__Private/LinterCLI.hack x: 182 lines of code y: 14 # changes src/__Private/MigrationCLI.hack x: 450 lines of code y: 38 # changes src/__Private/codegen/CodegenRelations.hack x: 166 lines of code y: 24 # changes src/__Private/execute_async.hack x: 34 lines of code y: 9 # changes src/Migrations/AddXHPChildrenDeclarationMethodMigration.hack x: 386 lines of code y: 9 # changes src/__Private/LintRun.hack x: 157 lines of code y: 9 # changes src/Linters/AutoFixingLinter.hack x: 11 lines of code y: 6 # changes src/Linters/AutoFixingLinterTrait.hack x: 29 lines of code y: 5 # changes src/Linters/DontAwaitInALoopLinter.hack x: 78 lines of code y: 11 # changes src/Linters/HHClientLintRule.hack x: 12 lines of code y: 3 # changes src/Linters/NewlineAtEndOfFileLinter.hack x: 53 lines of code y: 8 # changes src/Linters/StrictModeOnlyLinter.hack x: 38 lines of code y: 12 # changes src/Migrations/AddFixmesMigration.hack x: 72 lines of code y: 8 # changes src/Migrations/HSLMigration.hack x: 506 lines of code y: 18 # changes src/Migrations/IsRefinementMigration.hack x: 97 lines of code y: 11 # changes src/__Private/LSPImpl/CodeActionCommand.hack x: 84 lines of code y: 7 # changes src/__Private/codegen/CodegenBase.hack x: 317 lines of code y: 18 # changes src/__Private/ProcessExecutionQueues.hack x: 5 lines of code y: 2 # changes src/__Private/ProcessExecutionQueue.hack x: 22 lines of code y: 1 # changes src/Linters/LintMarkerName.hack x: 6 lines of code y: 1 # changes src/Migrations/TypeErrorMigrationTrait.hack x: 34 lines of code y: 4 # changes src/__Private/DumpCLI.hack x: 60 lines of code y: 1 # changes src/Linters/SuppressibleTrait.hack x: 35 lines of code y: 1 # changes src/Linters/HHClientLintError.hack x: 49 lines of code y: 3 # changes src/Linters/LinterTrait.hack x: 48 lines of code y: 2 # changes src/Linters/Linter.hack x: 11 lines of code y: 2 # changes src/__Private/LintRunEventHandler.hack x: 14 lines of code y: 4 # changes src/__Private/LintRunJSONEventHandler.hack x: 79 lines of code y: 5 # changes src/__Private/LintRunLSPPublishDiagnosticsEventHandler.hack x: 79 lines of code y: 7 # changes src/Linters/SingleRuleLintError.hack x: 37 lines of code y: 2 # changes src/Linters/ASTLintError.hack x: 46 lines of code y: 7 # changes src/Linters/ASTLinter.hack x: 93 lines of code y: 16 # changes src/Linters/LineLintError.hack x: 20 lines of code y: 3 # changes src/Linters/MustUseBracesForControlFlowLinter.hack x: 102 lines of code y: 16 # changes src/Linters/NoEmptyStatementsLinter.hack x: 98 lines of code y: 22 # changes src/Linters/NoFinalMethodInFinalClassLinter.hack x: 63 lines of code y: 5 # changes src/Linters/NoStringInterpolationLinter.hack x: 120 lines of code y: 15 # changes src/Linters/ShoutCaseEnumMembersLinter.hack x: 74 lines of code y: 3 # changes src/Linters/UseStatementWithLeadingBackslashLinter.hack x: 75 lines of code y: 12 # changes src/Linters/suppress_ast_linter_error.hack x: 76 lines of code y: 8 # changes codegen/trivia_from_json.hack x: 33 lines of code y: 7 # changes src/Linters/AsyncFunctionAndMethodLinter.hack x: 67 lines of code y: 3 # changes src/Linters/CamelCasedMethodsUnderscoredFunctionsLinter.hack x: 72 lines of code y: 6 # changes src/Linters/DataProviderTypesLinter.hack x: 263 lines of code y: 6 # changes src/Linters/DontHaveTwoEmptyLinesInARowLinter.hack x: 75 lines of code y: 2 # changes src/Linters/FinalOrAbstractClassLinter.hack x: 28 lines of code y: 9 # changes src/Linters/NamespacePrivateLinter.hack x: 142 lines of code y: 5 # changes src/Linters/NoElseifLinter.hack x: 33 lines of code y: 11 # changes src/Linters/NoPHPEqualityLinter.hack x: 52 lines of code y: 9 # changes src/Linters/PreferSingleQuotedStringLiteralLinter.hack x: 61 lines of code y: 2 # changes src/Linters/UnusedParameterLinter.hack x: 74 lines of code y: 10 # changes src/Linters/UnusedUseClauseLinter.hack x: 167 lines of code y: 15 # changes src/Linters/UnusedVariableLinter.hack x: 270 lines of code y: 8 # changes src/Linters/UseStatementWIthoutKindLinter.hack x: 82 lines of code y: 10 # changes src/Linters/UseStatementWithAsLinter.hack x: 22 lines of code y: 7 # changes src/get_unresolved_referenced_names.hack x: 77 lines of code y: 9 # changes src/__Private/XHProf.hack x: 140 lines of code y: 7 # changes src/__Private/codegen/CodegenNodeFromJSON.hack x: 107 lines of code y: 6 # changes src/__Private/codegen/CodegenTriviaFromJSON.hack x: 57 lines of code y: 4 # changes src/__Private/from_decoded_json.hack x: 18 lines of code y: 6 # changes src/__Private/node_from_json.hack x: 38 lines of code y: 9 # changes src/nodes/ITypeSpecifier.hack x: 4 lines of code y: 4 # changes src/Migrations/IMigrationWithFileList.hack x: 5 lines of code y: 3 # changes src/find_node_at_offset.hack x: 17 lines of code y: 5 # changes src/nodes/AwaitableCreationExpression.hack x: 20 lines of code y: 4 # changes src/Linters/FunctionNamingLinter.hack x: 105 lines of code y: 11 # changes src/Migrations/DemangleXHP.hack x: 27 lines of code y: 2 # changes src/Migrations/HardenVarrayOrDarrayTypehintsMigration.hack x: 98 lines of code y: 3 # changes src/Migrations/XHPClassModifierMigration.hack x: 40 lines of code y: 2 # changes src/Migrations/XHPLibV3ToV4Migration.hack x: 438 lines of code y: 5 # changes src/__Private/Resolution/get_uses_directly_in_scope.hack x: 89 lines of code y: 11 # changes src/nodes/NamespaceDeclaration.hack x: 26 lines of code y: 8 # changes src/nodes/Script.hack x: 145 lines of code y: 15 # changes codegen/tokens/VariableToken.hack x: 17 lines of code y: 9 # changes src/__Private/Resolution/resolve_name.hack x: 40 lines of code y: 3 # changes src/Linters/ConsistentLineEndingsLinter.hack x: 59 lines of code y: 1 # changes codegen/Trivia.hack x: 121 lines of code y: 7 # changes codegen/tokens/DoubleQuotedStringLiteralToken.hack x: 14 lines of code y: 8 # changes codegen/tokens/NameToken.hack x: 14 lines of code y: 9 # changes src/Migrations/FixmeCodeMigration.hack x: 142 lines of code y: 2 # changes src/__Private/Resolution/get_current_namespace.hack x: 10 lines of code y: 5 # changes src/Migrations/BaseMigration.hack x: 39 lines of code y: 6 # changes src/__Private/LSPLib/Server.hack x: 154 lines of code y: 3 # changes src/__Private/LSPLib/create_textedits.hack x: 112 lines of code y: 2 # changes src/__Private/codegen/CodegenTokenFromData.hack x: 108 lines of code y: 3 # changes src/__Private/LSPImpl/relint_uri_async.hack x: 23 lines of code y: 3 # changes src/__Private/codegen/CodegenTrivia.hack x: 59 lines of code y: 6 # changes src/Migrations/AddFixMesMigration.hack x: 72 lines of code y: 2 # changes src/__Private/OnDiskFile.hack x: 27 lines of code y: 1 # changes src/__Private/LSP/TextDocumentClientCapabilities.hack x: 85 lines of code y: 1 # changes
49.0
# changes
  min: 1.0
  average: 7.49
  25th percentile: 1.0
  median: 5.0
  75th percentile: 9.0
  max: 49.0
0 4126.0
lines of code
min: 2.0 | average: 74.37 | 25th percentile: 10.0 | median: 12.0 | 75th percentile: 112.0 | max: 4126.0

Number of Contributors vs. Number of Changes: 767 points

src/Linters/UnreachableCodeLinter.hack x: 1 # contributors y: 1 # changes src/__Private/LintRunCLIEventHandler.hack x: 4 # contributors y: 15 # changes codegen/inferred_relationships.hack x: 4 # contributors y: 42 # changes codegen/node_from_json.hack x: 4 # contributors y: 29 # changes codegen/syntax/LambdaExpression.hack x: 5 # contributors y: 25 # changes codegen/token_from_data.hack x: 3 # contributors y: 22 # changes codegen/version.hack x: 4 # contributors y: 49 # changes src/__Private/is_compatible_schema_version.hack x: 4 # contributors y: 45 # changes codegen/syntax/AnonymousFunction.hack x: 5 # contributors y: 28 # changes codegen/syntax/CastExpression.hack x: 5 # contributors y: 27 # changes codegen/syntax/ConstDeclaration.hack x: 5 # contributors y: 21 # changes codegen/syntax/ConstructorCall.hack x: 5 # contributors y: 26 # changes codegen/syntax/EnumClassDeclaration.hack x: 4 # contributors y: 10 # changes codegen/syntax/EnumClassEnumerator.hack x: 4 # contributors y: 11 # changes codegen/syntax/FunctionDeclarationHeader.hack x: 5 # contributors y: 31 # changes codegen/syntax/MemberSelectionExpression.hack x: 5 # contributors y: 22 # changes codegen/syntax/NullableAsExpression.hack x: 5 # contributors y: 20 # changes codegen/syntax/SubscriptExpression.hack x: 5 # contributors y: 24 # changes codegen/syntax/SwitchSection.hack x: 5 # contributors y: 19 # changes src/Linters/GroupUseStatementsLinter.hack x: 4 # contributors y: 13 # changes src/__Private/LSPImpl/ExecuteCommandCommand.hack x: 2 # contributors y: 4 # changes src/__Private/LintRunConfig.hack x: 9 # contributors y: 37 # changes src/Linters/HHClientLinter.hack x: 2 # contributors y: 9 # changes src/Migrations/NodeTypeMigrationStep.hack x: 2 # contributors y: 2 # changes src/Migrations/TypedMigrationStep.hack x: 3 # contributors y: 6 # changes src/nodes/ListItem.hack x: 3 # contributors y: 7 # changes src/nodes/NodeList.hack x: 4 # contributors y: 16 # changes src/nodes/TokenWithFixedText.hack x: 4 # contributors y: 5 # changes src/nodes/TokenWithVariableText.hack x: 2 # contributors y: 3 # changes src/nodes/Node.hack x: 6 # contributors y: 17 # changes src/nodes/WrapperNode.hack x: 3 # contributors y: 8 # changes codegen/syntax/AliasDeclaration.hack x: 5 # contributors y: 23 # changes codegen/syntax/AnonymousClass.hack x: 5 # contributors y: 16 # changes codegen/syntax/Attribute.hack x: 4 # contributors y: 7 # changes codegen/syntax/AttributizedSpecifier.hack x: 4 # contributors y: 12 # changes codegen/syntax/CatchClause.hack x: 5 # contributors y: 15 # changes codegen/syntax/ClosureTypeSpecifier.hack x: 5 # contributors y: 29 # changes codegen/syntax/ConcurrentStatement.hack x: 5 # contributors y: 18 # changes codegen/syntax/ETSpliceExpression.hack x: 3 # contributors y: 4 # changes codegen/syntax/ElseifClause.hack x: 5 # contributors y: 17 # changes codegen/syntax/EndOfFile.hack x: 5 # contributors y: 14 # changes codegen/syntax/EnumClassLabelExpression.hack x: 3 # contributors y: 3 # changes codegen/syntax/EnumUse.hack x: 3 # contributors y: 5 # changes codegen/syntax/FunctionCtxTypeSpecifier.hack x: 4 # contributors y: 6 # changes codegen/syntax/FunctionPointerExpression.hack x: 4 # contributors y: 8 # changes codegen/syntax/IntersectionTypeSpecifier.hack x: 4 # contributors y: 9 # changes codegen/syntax/PrefixedCodeExpression.hack x: 4 # contributors y: 4 # changes src/__Private/codegen/CodegenSyntax.hack x: 7 # contributors y: 32 # changes src/__Private/LSPImpl/Server.hack x: 5 # contributors y: 11 # changes src/__Private/MigrationCLI.hack x: 7 # contributors y: 38 # changes src/__Private/codegen/CodegenRelations.hack x: 4 # contributors y: 24 # changes src/__Private/LintRun.hack x: 3 # contributors y: 9 # changes src/Migrations/HSLMigration.hack x: 4 # contributors y: 18 # changes src/Migrations/IsRefinementMigration.hack x: 2 # contributors y: 11 # changes src/__Private/codegen/CodegenBase.hack x: 3 # contributors y: 18 # changes src/__Private/ProcessExecutionQueues.hack x: 1 # contributors y: 2 # changes src/Linters/HHClientLintError.hack x: 1 # contributors y: 3 # changes src/Linters/LintError.hack x: 2 # contributors y: 6 # changes src/Linters/NoEmptyStatementsLinter.hack x: 6 # contributors y: 22 # changes src/Linters/UseStatementWithLeadingBackslashLinter.hack x: 3 # contributors y: 12 # changes src/Linters/UnusedParameterLinter.hack x: 3 # contributors y: 10 # changes src/Linters/UnusedUseClauseLinter.hack x: 3 # contributors y: 15 # changes src/Linters/UnusedVariableLinter.hack x: 5 # contributors y: 8 # changes src/Linters/UseStatementWithAsLinter.hack x: 2 # contributors y: 7 # changes src/Migrations/TopLevelRequiresMigration.hack x: 2 # contributors y: 5 # changes src/Linters/FunctionNamingLinter.hack x: 3 # contributors y: 11 # changes src/resolve_type.hack x: 2 # contributors y: 10 # changes src/nodes/IFunctionishDeclaration.hack x: 1 # contributors y: 4 # changes src/Linters/AutoFixingASTLinter.hack x: 1 # contributors y: 5 # changes src/nodes/INamespaceUseDeclaration.hack x: 1 # contributors y: 6 # changes
49.0
# changes
  min: 1.0
  average: 7.49
  25th percentile: 1.0
  median: 5.0
  75th percentile: 9.0
  max: 49.0
0 9.0
# contributors
min: 1.0 | average: 2.48 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 4.0 | max: 9.0