2021-10-22 17:56:12 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "utf-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
2023-04-24 06:47:53 +00:00
< meta name = "generator" content = "Crystal Docs 1.7.3" >
2021-10-22 17:56:12 +00:00
< meta name = "crystal_docs.project_version" content = "master" >
< meta name = "crystal_docs.project_name" content = "ameba" >
< link href = "../../css/style.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "../../js/doc.js" > < / script >
< meta name = "repository-name" content = "ameba" >
< title > Ameba::Spec::AnnotatedSource - ameba master< / title >
< script type = "text/javascript" >
CrystalDocs.base_path = "../../";
< / script >
< / head >
< body >
< svg class = "hidden" >
< symbol id = "octicon-link" viewBox = "0 0 16 16" >
< path fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path >
< / symbol >
< / svg >
< div class = "sidebar" >
< div class = "sidebar-header" >
< div class = "search-box" >
< input type = "search" class = "search-input" placeholder = "Search..." spellcheck = "false" aria-label = "Search" >
< / div >
< div class = "project-summary" >
< h1 class = "project-name" >
< a href = "../../index.html" >
ameba
< / a >
< / h1 >
< span class = "project-version" >
master
< / span >
< / div >
< / div >
< div class = "search-results hidden" >
< ul class = "search-list" > < / ul >
< / div >
< div class = "types-list" >
< ul >
< li class = "parent open current" data-id = "ameba/Ameba" data-name = "ameba" >
< a href = "../../Ameba.html" > Ameba< / a >
< ul >
< li class = "parent " data-id = "ameba/Ameba/AST" data-name = "ameba::ast" >
< a href = "../../Ameba/AST.html" > AST< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/AST/Argument" data-name = "ameba::ast::argument" >
< a href = "../../Ameba/AST/Argument.html" > Argument< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Assignment" data-name = "ameba::ast::assignment" >
< a href = "../../Ameba/AST/Assignment.html" > Assignment< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/BaseVisitor" data-name = "ameba::ast::basevisitor" >
< a href = "../../Ameba/AST/BaseVisitor.html" > BaseVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Branch" data-name = "ameba::ast::branch" >
< a href = "../../Ameba/AST/Branch.html" > Branch< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Branchable" data-name = "ameba::ast::branchable" >
< a href = "../../Ameba/AST/Branchable.html" > Branchable< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/CountingVisitor" data-name = "ameba::ast::countingvisitor" >
< a href = "../../Ameba/AST/CountingVisitor.html" > CountingVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/FlowExpression" data-name = "ameba::ast::flowexpression" >
< a href = "../../Ameba/AST/FlowExpression.html" > FlowExpression< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/FlowExpressionVisitor" data-name = "ameba::ast::flowexpressionvisitor" >
< a href = "../../Ameba/AST/FlowExpressionVisitor.html" > FlowExpressionVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/InstanceVariable" data-name = "ameba::ast::instancevariable" >
< a href = "../../Ameba/AST/InstanceVariable.html" > InstanceVariable< / a >
< / li >
2023-06-13 09:37:29 +00:00
< li class = "parent " data-id = "ameba/Ameba/AST/NodeVisitor" data-name = "ameba::ast::nodevisitor" >
2021-10-22 17:56:12 +00:00
< a href = "../../Ameba/AST/NodeVisitor.html" > NodeVisitor< / a >
2023-06-13 09:37:29 +00:00
< ul >
< li class = " " data-id = "ameba/Ameba/AST/NodeVisitor/Category" data-name = "ameba::ast::nodevisitor::category" >
< a href = "../../Ameba/AST/NodeVisitor/Category.html" > Category< / a >
< / li >
< / ul >
2021-10-22 17:56:12 +00:00
< / li >
< li class = " " data-id = "ameba/Ameba/AST/RedundantControlExpressionVisitor" data-name = "ameba::ast::redundantcontrolexpressionvisitor" >
< a href = "../../Ameba/AST/RedundantControlExpressionVisitor.html" > RedundantControlExpressionVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Reference" data-name = "ameba::ast::reference" >
< a href = "../../Ameba/AST/Reference.html" > Reference< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Scope" data-name = "ameba::ast::scope" >
< a href = "../../Ameba/AST/Scope.html" > Scope< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/ScopeVisitor" data-name = "ameba::ast::scopevisitor" >
< a href = "../../Ameba/AST/ScopeVisitor.html" > ScopeVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/TopLevelNodesVisitor" data-name = "ameba::ast::toplevelnodesvisitor" >
< a href = "../../Ameba/AST/TopLevelNodesVisitor.html" > TopLevelNodesVisitor< / a >
< / li >
2023-02-19 06:52:26 +00:00
< li class = " " data-id = "ameba/Ameba/AST/TypeDecVariable" data-name = "ameba::ast::typedecvariable" >
< a href = "../../Ameba/AST/TypeDecVariable.html" > TypeDecVariable< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/AST/Util" data-name = "ameba::ast::util" >
< a href = "../../Ameba/AST/Util.html" > Util< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Variable" data-name = "ameba::ast::variable" >
< a href = "../../Ameba/AST/Variable.html" > Variable< / a >
< / li >
< / ul >
< / li >
< li class = " " data-id = "ameba/Ameba/Config" data-name = "ameba::config" >
< a href = "../../Ameba/Config.html" > Config< / a >
< / li >
2021-11-16 21:31:29 +00:00
< li class = "parent " data-id = "ameba/Ameba/Ext" data-name = "ameba::ext" >
< a href = "../../Ameba/Ext.html" > Ext< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Ext/Location" data-name = "ameba::ext::location" >
< a href = "../../Ameba/Ext/Location.html" > Location< / a >
< / li >
< / ul >
< / li >
2021-10-22 17:56:12 +00:00
< li class = "parent " data-id = "ameba/Ameba/Formatter" data-name = "ameba::formatter" >
< a href = "../../Ameba/Formatter.html" > Formatter< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Formatter/BaseFormatter" data-name = "ameba::formatter::baseformatter" >
< a href = "../../Ameba/Formatter/BaseFormatter.html" > BaseFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/DisabledFormatter" data-name = "ameba::formatter::disabledformatter" >
< a href = "../../Ameba/Formatter/DisabledFormatter.html" > DisabledFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/DotFormatter" data-name = "ameba::formatter::dotformatter" >
< a href = "../../Ameba/Formatter/DotFormatter.html" > DotFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/ExplainFormatter" data-name = "ameba::formatter::explainformatter" >
< a href = "../../Ameba/Formatter/ExplainFormatter.html" > ExplainFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/FlycheckFormatter" data-name = "ameba::formatter::flycheckformatter" >
< a href = "../../Ameba/Formatter/FlycheckFormatter.html" > FlycheckFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/JSONFormatter" data-name = "ameba::formatter::jsonformatter" >
< a href = "../../Ameba/Formatter/JSONFormatter.html" > JSONFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/TODOFormatter" data-name = "ameba::formatter::todoformatter" >
< a href = "../../Ameba/Formatter/TODOFormatter.html" > TODOFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/Util" data-name = "ameba::formatter::util" >
< a href = "../../Ameba/Formatter/Util.html" > Util< / a >
< / li >
< / ul >
< / li >
< li class = " " data-id = "ameba/Ameba/GlobUtils" data-name = "ameba::globutils" >
< a href = "../../Ameba/GlobUtils.html" > GlobUtils< / a >
< / li >
< li class = "parent " data-id = "ameba/Ameba/InlineComments" data-name = "ameba::inlinecomments" >
< a href = "../../Ameba/InlineComments.html" > InlineComments< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/InlineComments/Action" data-name = "ameba::inlinecomments::action" >
< a href = "../../Ameba/InlineComments/Action.html" > Action< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Issue" data-name = "ameba::issue" >
< a href = "../../Ameba/Issue.html" > Issue< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Issue/Status" data-name = "ameba::issue::status" >
< a href = "../../Ameba/Issue/Status.html" > Status< / a >
< / li >
< / ul >
< / li >
< li class = " " data-id = "ameba/Ameba/Reportable" data-name = "ameba::reportable" >
< a href = "../../Ameba/Reportable.html" > Reportable< / a >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule" data-name = "ameba::rule" >
< a href = "../../Ameba/Rule.html" > Rule< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Base" data-name = "ameba::rule::base" >
< a href = "../../Ameba/Rule/Base.html" > Base< / a >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Layout" data-name = "ameba::rule::layout" >
< a href = "../../Ameba/Rule/Layout.html" > Layout< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Layout/LineLength" data-name = "ameba::rule::layout::linelength" >
< a href = "../../Ameba/Rule/Layout/LineLength.html" > LineLength< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Layout/TrailingBlankLines" data-name = "ameba::rule::layout::trailingblanklines" >
< a href = "../../Ameba/Rule/Layout/TrailingBlankLines.html" > TrailingBlankLines< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Layout/TrailingWhitespace" data-name = "ameba::rule::layout::trailingwhitespace" >
< a href = "../../Ameba/Rule/Layout/TrailingWhitespace.html" > TrailingWhitespace< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Lint" data-name = "ameba::rule::lint" >
< a href = "../../Ameba/Rule/Lint.html" > Lint< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/AmbiguousAssignment" data-name = "ameba::rule::lint::ambiguousassignment" >
< a href = "../../Ameba/Rule/Lint/AmbiguousAssignment.html" > AmbiguousAssignment< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/BadDirective" data-name = "ameba::rule::lint::baddirective" >
< a href = "../../Ameba/Rule/Lint/BadDirective.html" > BadDirective< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ComparisonToBoolean" data-name = "ameba::rule::lint::comparisontoboolean" >
< a href = "../../Ameba/Rule/Lint/ComparisonToBoolean.html" > ComparisonToBoolean< / a >
< / li >
2021-12-31 17:40:58 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/DebugCalls" data-name = "ameba::rule::lint::debugcalls" >
< a href = "../../Ameba/Rule/Lint/DebugCalls.html" > DebugCalls< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/DebuggerStatement" data-name = "ameba::rule::lint::debuggerstatement" >
< a href = "../../Ameba/Rule/Lint/DebuggerStatement.html" > DebuggerStatement< / a >
< / li >
2023-06-08 12:11:42 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/Documentation" data-name = "ameba::rule::lint::documentation" >
< a href = "../../Ameba/Rule/Lint/Documentation.html" > Documentation< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/DuplicatedRequire" data-name = "ameba::rule::lint::duplicatedrequire" >
< a href = "../../Ameba/Rule/Lint/DuplicatedRequire.html" > DuplicatedRequire< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/EmptyEnsure" data-name = "ameba::rule::lint::emptyensure" >
< a href = "../../Ameba/Rule/Lint/EmptyEnsure.html" > EmptyEnsure< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/EmptyExpression" data-name = "ameba::rule::lint::emptyexpression" >
< a href = "../../Ameba/Rule/Lint/EmptyExpression.html" > EmptyExpression< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/EmptyLoop" data-name = "ameba::rule::lint::emptyloop" >
< a href = "../../Ameba/Rule/Lint/EmptyLoop.html" > EmptyLoop< / a >
< / li >
2022-12-20 15:23:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/Formatting" data-name = "ameba::rule::lint::formatting" >
< a href = "../../Ameba/Rule/Lint/Formatting.html" > Formatting< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/HashDuplicatedKey" data-name = "ameba::rule::lint::hashduplicatedkey" >
< a href = "../../Ameba/Rule/Lint/HashDuplicatedKey.html" > HashDuplicatedKey< / a >
< / li >
2022-11-17 13:22:23 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralAssignmentsInExpressions" data-name = "ameba::rule::lint::literalassignmentsinexpressions" >
< a href = "../../Ameba/Rule/Lint/LiteralAssignmentsInExpressions.html" > LiteralAssignmentsInExpressions< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralInCondition" data-name = "ameba::rule::lint::literalincondition" >
< a href = "../../Ameba/Rule/Lint/LiteralInCondition.html" > LiteralInCondition< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralInInterpolation" data-name = "ameba::rule::lint::literalininterpolation" >
< a href = "../../Ameba/Rule/Lint/LiteralInInterpolation.html" > LiteralInInterpolation< / a >
< / li >
2022-11-02 09:13:37 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralsComparison" data-name = "ameba::rule::lint::literalscomparison" >
< a href = "../../Ameba/Rule/Lint/LiteralsComparison.html" > LiteralsComparison< / a >
< / li >
2022-12-20 15:22:34 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/MissingBlockArgument" data-name = "ameba::rule::lint::missingblockargument" >
< a href = "../../Ameba/Rule/Lint/MissingBlockArgument.html" > MissingBlockArgument< / a >
< / li >
2022-10-30 22:53:00 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/NotNil" data-name = "ameba::rule::lint::notnil" >
< a href = "../../Ameba/Rule/Lint/NotNil.html" > NotNil< / a >
< / li >
2022-11-01 01:19:47 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/NotNilAfterNoBang" data-name = "ameba::rule::lint::notnilafternobang" >
< a href = "../../Ameba/Rule/Lint/NotNilAfterNoBang.html" > NotNilAfterNoBang< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/PercentArrays" data-name = "ameba::rule::lint::percentarrays" >
< a href = "../../Ameba/Rule/Lint/PercentArrays.html" > PercentArrays< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RandZero" data-name = "ameba::rule::lint::randzero" >
< a href = "../../Ameba/Rule/Lint/RandZero.html" > RandZero< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RedundantStringCoercion" data-name = "ameba::rule::lint::redundantstringcoercion" >
< a href = "../../Ameba/Rule/Lint/RedundantStringCoercion.html" > RedundantStringCoercion< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RedundantWithIndex" data-name = "ameba::rule::lint::redundantwithindex" >
< a href = "../../Ameba/Rule/Lint/RedundantWithIndex.html" > RedundantWithIndex< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RedundantWithObject" data-name = "ameba::rule::lint::redundantwithobject" >
< a href = "../../Ameba/Rule/Lint/RedundantWithObject.html" > RedundantWithObject< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ShadowedArgument" data-name = "ameba::rule::lint::shadowedargument" >
< a href = "../../Ameba/Rule/Lint/ShadowedArgument.html" > ShadowedArgument< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ShadowedException" data-name = "ameba::rule::lint::shadowedexception" >
< a href = "../../Ameba/Rule/Lint/ShadowedException.html" > ShadowedException< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ShadowingOuterLocalVar" data-name = "ameba::rule::lint::shadowingouterlocalvar" >
< a href = "../../Ameba/Rule/Lint/ShadowingOuterLocalVar.html" > ShadowingOuterLocalVar< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/SharedVarInFiber" data-name = "ameba::rule::lint::sharedvarinfiber" >
< a href = "../../Ameba/Rule/Lint/SharedVarInFiber.html" > SharedVarInFiber< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/SpecFocus" data-name = "ameba::rule::lint::specfocus" >
< a href = "../../Ameba/Rule/Lint/SpecFocus.html" > SpecFocus< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/Syntax" data-name = "ameba::rule::lint::syntax" >
< a href = "../../Ameba/Rule/Lint/Syntax.html" > Syntax< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnneededDisableDirective" data-name = "ameba::rule::lint::unneededdisabledirective" >
< a href = "../../Ameba/Rule/Lint/UnneededDisableDirective.html" > UnneededDisableDirective< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnreachableCode" data-name = "ameba::rule::lint::unreachablecode" >
< a href = "../../Ameba/Rule/Lint/UnreachableCode.html" > UnreachableCode< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnusedArgument" data-name = "ameba::rule::lint::unusedargument" >
< a href = "../../Ameba/Rule/Lint/UnusedArgument.html" > UnusedArgument< / a >
< / li >
2022-12-15 18:35:50 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnusedBlockArgument" data-name = "ameba::rule::lint::unusedblockargument" >
< a href = "../../Ameba/Rule/Lint/UnusedBlockArgument.html" > UnusedBlockArgument< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UselessAssign" data-name = "ameba::rule::lint::uselessassign" >
< a href = "../../Ameba/Rule/Lint/UselessAssign.html" > UselessAssign< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UselessConditionInWhen" data-name = "ameba::rule::lint::uselessconditioninwhen" >
< a href = "../../Ameba/Rule/Lint/UselessConditionInWhen.html" > UselessConditionInWhen< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Metrics" data-name = "ameba::rule::metrics" >
< a href = "../../Ameba/Rule/Metrics.html" > Metrics< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Metrics/CyclomaticComplexity" data-name = "ameba::rule::metrics::cyclomaticcomplexity" >
< a href = "../../Ameba/Rule/Metrics/CyclomaticComplexity.html" > CyclomaticComplexity< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Performance" data-name = "ameba::rule::performance" >
< a href = "../../Ameba/Rule/Performance.html" > Performance< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/AnyAfterFilter" data-name = "ameba::rule::performance::anyafterfilter" >
< a href = "../../Ameba/Rule/Performance/AnyAfterFilter.html" > AnyAfterFilter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/AnyInsteadOfEmpty" data-name = "ameba::rule::performance::anyinsteadofempty" >
< a href = "../../Ameba/Rule/Performance/AnyInsteadOfEmpty.html" > AnyInsteadOfEmpty< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/Base" data-name = "ameba::rule::performance::base" >
< a href = "../../Ameba/Rule/Performance/Base.html" > Base< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/ChainedCallWithNoBang" data-name = "ameba::rule::performance::chainedcallwithnobang" >
< a href = "../../Ameba/Rule/Performance/ChainedCallWithNoBang.html" > ChainedCallWithNoBang< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/CompactAfterMap" data-name = "ameba::rule::performance::compactaftermap" >
< a href = "../../Ameba/Rule/Performance/CompactAfterMap.html" > CompactAfterMap< / a >
< / li >
2023-06-30 19:00:21 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/ExcessiveAllocations" data-name = "ameba::rule::performance::excessiveallocations" >
< a href = "../../Ameba/Rule/Performance/ExcessiveAllocations.html" > ExcessiveAllocations< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/FirstLastAfterFilter" data-name = "ameba::rule::performance::firstlastafterfilter" >
< a href = "../../Ameba/Rule/Performance/FirstLastAfterFilter.html" > FirstLastAfterFilter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/FlattenAfterMap" data-name = "ameba::rule::performance::flattenaftermap" >
< a href = "../../Ameba/Rule/Performance/FlattenAfterMap.html" > FlattenAfterMap< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/MapInsteadOfBlock" data-name = "ameba::rule::performance::mapinsteadofblock" >
< a href = "../../Ameba/Rule/Performance/MapInsteadOfBlock.html" > MapInsteadOfBlock< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/SizeAfterFilter" data-name = "ameba::rule::performance::sizeafterfilter" >
< a href = "../../Ameba/Rule/Performance/SizeAfterFilter.html" > SizeAfterFilter< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Style" data-name = "ameba::rule::style" >
< a href = "../../Ameba/Rule/Style.html" > Style< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Style/ConstantNames" data-name = "ameba::rule::style::constantnames" >
< a href = "../../Ameba/Rule/Style/ConstantNames.html" > ConstantNames< / a >
< / li >
2021-12-09 20:34:45 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/GuardClause" data-name = "ameba::rule::style::guardclause" >
< a href = "../../Ameba/Rule/Style/GuardClause.html" > GuardClause< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/IsAFilter" data-name = "ameba::rule::style::isafilter" >
< a href = "../../Ameba/Rule/Style/IsAFilter.html" > IsAFilter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/IsANil" data-name = "ameba::rule::style::isanil" >
< a href = "../../Ameba/Rule/Style/IsANil.html" > IsANil< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/LargeNumbers" data-name = "ameba::rule::style::largenumbers" >
< a href = "../../Ameba/Rule/Style/LargeNumbers.html" > LargeNumbers< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/MethodNames" data-name = "ameba::rule::style::methodnames" >
< a href = "../../Ameba/Rule/Style/MethodNames.html" > MethodNames< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/NegatedConditionsInUnless" data-name = "ameba::rule::style::negatedconditionsinunless" >
< a href = "../../Ameba/Rule/Style/NegatedConditionsInUnless.html" > NegatedConditionsInUnless< / a >
< / li >
2022-11-19 23:42:38 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/ParenthesesAroundCondition" data-name = "ameba::rule::style::parenthesesaroundcondition" >
< a href = "../../Ameba/Rule/Style/ParenthesesAroundCondition.html" > ParenthesesAroundCondition< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/PredicateName" data-name = "ameba::rule::style::predicatename" >
< a href = "../../Ameba/Rule/Style/PredicateName.html" > PredicateName< / a >
< / li >
2022-12-08 12:16:48 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/QueryBoolMethods" data-name = "ameba::rule::style::queryboolmethods" >
< a href = "../../Ameba/Rule/Style/QueryBoolMethods.html" > QueryBoolMethods< / a >
< / li >
2021-10-22 17:56:12 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/RedundantBegin" data-name = "ameba::rule::style::redundantbegin" >
< a href = "../../Ameba/Rule/Style/RedundantBegin.html" > RedundantBegin< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/RedundantNext" data-name = "ameba::rule::style::redundantnext" >
< a href = "../../Ameba/Rule/Style/RedundantNext.html" > RedundantNext< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/RedundantReturn" data-name = "ameba::rule::style::redundantreturn" >
< a href = "../../Ameba/Rule/Style/RedundantReturn.html" > RedundantReturn< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/TypeNames" data-name = "ameba::rule::style::typenames" >
< a href = "../../Ameba/Rule/Style/TypeNames.html" > TypeNames< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/UnlessElse" data-name = "ameba::rule::style::unlesselse" >
< a href = "../../Ameba/Rule/Style/UnlessElse.html" > UnlessElse< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/VariableNames" data-name = "ameba::rule::style::variablenames" >
< a href = "../../Ameba/Rule/Style/VariableNames.html" > VariableNames< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/VerboseBlock" data-name = "ameba::rule::style::verboseblock" >
< a href = "../../Ameba/Rule/Style/VerboseBlock.html" > VerboseBlock< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/WhileTrue" data-name = "ameba::rule::style::whiletrue" >
< a href = "../../Ameba/Rule/Style/WhileTrue.html" > WhileTrue< / a >
< / li >
< / ul >
< / li >
< / ul >
< / li >
2021-11-01 19:25:45 +00:00
< li class = "parent " data-id = "ameba/Ameba/Runner" data-name = "ameba::runner" >
2021-10-22 17:56:12 +00:00
< a href = "../../Ameba/Runner.html" > Runner< / a >
2021-11-01 19:25:45 +00:00
< ul >
< li class = " " data-id = "ameba/Ameba/Runner/InfiniteCorrectionLoopError" data-name = "ameba::runner::infinitecorrectionlooperror" >
< a href = "../../Ameba/Runner/InfiniteCorrectionLoopError.html" > InfiniteCorrectionLoopError< / a >
< / li >
< / ul >
2021-10-22 17:56:12 +00:00
< / li >
< li class = " " data-id = "ameba/Ameba/Severity" data-name = "ameba::severity" >
< a href = "../../Ameba/Severity.html" > Severity< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/SeverityYamlConverter" data-name = "ameba::severityyamlconverter" >
< a href = "../../Ameba/SeverityYamlConverter.html" > SeverityYamlConverter< / a >
< / li >
2021-11-01 19:25:45 +00:00
< li class = "parent " data-id = "ameba/Ameba/Source" data-name = "ameba::source" >
2021-10-22 17:56:12 +00:00
< a href = "../../Ameba/Source.html" > Source< / a >
2021-11-01 19:25:45 +00:00
< ul >
< li class = " " data-id = "ameba/Ameba/Source/Corrector" data-name = "ameba::source::corrector" >
< a href = "../../Ameba/Source/Corrector.html" > Corrector< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Source/Rewriter" data-name = "ameba::source::rewriter" >
< a href = "../../Ameba/Source/Rewriter.html" > Rewriter< / a >
< / li >
< / ul >
2021-10-22 17:56:12 +00:00
< / li >
< li class = "parent open current" data-id = "ameba/Ameba/Spec" data-name = "ameba::spec" >
< a href = "../../Ameba/Spec.html" > Spec< / a >
< ul >
< li class = " current" data-id = "ameba/Ameba/Spec/AnnotatedSource" data-name = "ameba::spec::annotatedsource" >
< a href = "../../Ameba/Spec/AnnotatedSource.html" > AnnotatedSource< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/BeValid" data-name = "ameba::spec::bevalid" >
< a href = "../../Ameba/Spec/BeValid.html" > BeValid< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/BeValidExpectation" data-name = "ameba::spec::bevalidexpectation" >
< a href = "../../Ameba/Spec/BeValidExpectation.html" > BeValidExpectation< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/ExpectIssue" data-name = "ameba::spec::expectissue" >
< a href = "../../Ameba/Spec/ExpectIssue.html" > ExpectIssue< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/Util" data-name = "ameba::spec::util" >
< a href = "../../Ameba/Spec/Util.html" > Util< / a >
< / li >
< / ul >
< / li >
< li class = " " data-id = "ameba/Ameba/Tokenizer" data-name = "ameba::tokenizer" >
< a href = "../../Ameba/Tokenizer.html" > Tokenizer< / a >
< / li >
< / ul >
< / li >
< / ul >
< / div >
< / div >
< div class = "main-content" >
< h1 class = "type-name" >
< span class = "kind" > class< / span > Ameba::Spec::AnnotatedSource
< / h1 >
< ul class = "superclass-hierarchy" > < li class = "superclass" > < a href = "../../Ameba/Spec/AnnotatedSource.html" > Ameba::Spec::AnnotatedSource< / a > < / li > < li class = "superclass" > Reference< / li > < li class = "superclass" > Object< / li > < / ul >
< h2 >
< a id = "overview" class = "anchor" href = "#overview" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Overview
< / h2 >
< p > Parsed representation of code annotated with the < code > # ^^^ error: Message< / code > style< / p >
< h2 >
< a id = "defined-in" class = "anchor" href = "#defined-in" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Defined in:
< / h2 >
2023-07-02 12:36:02 +00:00
< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L2" target = "_blank" >
2021-10-22 17:56:12 +00:00
ameba/spec/annotated_source.cr
< / a >
< br / >
< h2 >
< a id = "constant-summary" class = "anchor" href = "#constant-summary" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Constant Summary
< / h2 >
< dl >
< dt class = "entry-const" id = "ABBREV" >
< strong > ABBREV< / strong > = < code > < span class = "s" > " [...]" < / span > < / code >
< / dt >
< dt class = "entry-const" id = "ANNOTATION_PATTERN_1" >
< strong > ANNOTATION_PATTERN_1< / strong > = < code > < span class = "s" > /\A\s*(# )?(\^+|\^{})( error:)? /< / span > < / code >
< / dt >
< dt class = "entry-const" id = "ANNOTATION_PATTERN_2" >
< strong > ANNOTATION_PATTERN_2< / strong > = < code > < span class = "s" > " # error: " < / span > < / code >
< / dt >
< / dl >
< h2 >
< a id = "constructors" class = "anchor" href = "#constructors" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Constructors
< / h2 >
< ul class = "list-summary" >
< li class = "entry-summary" >
2022-08-01 21:51:27 +00:00
< a href = "#new%28lines%3AArray%28String%29%2Cannotations%3AEnumerable%28Tuple%28Int32%2CString%2CString%29%29%29-class-method" class = "signature" > < strong > .new< / strong > (lines : Array(String), annotations : Enumerable(Tuple(Int32, String, String)))< / a >
2021-10-22 17:56:12 +00:00
< div class = "summary" > < p > < span class = "flag purple" > NOTE< / span > Annotations are sorted so that reconstructing the annotation text via < code > < a href = "../../Ameba/Spec/AnnotatedSource.html#to_s%28io%29-instance-method" > #to_s< / a > < / code > is deterministic.< / p > < / div >
< / li >
< li class = "entry-summary" >
2022-08-01 21:51:27 +00:00
< a href = "#new%28lines%3AArray%28String%29%2Cissues%3AEnumerable%28Issue%29%29-class-method" class = "signature" > < strong > .new< / strong > (lines : Array(String), issues : Enumerable(Issue))< / a >
2021-10-22 17:56:12 +00:00
< div class = "summary" > < p > Annotates the source code with the Ameba issues provided.< / p > < / div >
< / li >
< / ul >
< h2 >
< a id = "class-method-summary" class = "anchor" href = "#class-method-summary" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Class Method Summary
< / h2 >
< ul class = "list-summary" >
< li class = "entry-summary" >
< a href = "#parse%28annotated_code%29-class-method" class = "signature" > < strong > .parse< / strong > (annotated_code)< / a >
< div class = "summary" > < p > Separates annotation lines from code lines.< / p > < / div >
< / li >
< / ul >
< h2 >
< a id = "instance-method-summary" class = "anchor" href = "#instance-method-summary" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Instance Method Summary
< / h2 >
< ul class = "list-summary" >
< li class = "entry-summary" >
< a href = "#%3D%3D%28other%29-instance-method" class = "signature" > < strong > #==< / strong > (other)< / a >
< div class = "summary" > < p > Returns < code > false< / code > (other can only be a < code > Value< / code > here).< / p > < / div >
< / li >
< li class = "entry-summary" >
< a href = "#annotations%3AArray%28Tuple%28Int32%2CString%2CString%29%29-instance-method" class = "signature" > < strong > #annotations< / strong > : Array(Tuple(Int32, String, String))< / a >
< div class = "summary" > < p > Each entry is the line number, annotation prefix, and message.< / p > < / div >
< / li >
< li class = "entry-summary" >
< a href = "#lines%3AArray%28String%29-instance-method" class = "signature" > < strong > #lines< / strong > : Array(String)< / a >
< / li >
< li class = "entry-summary" >
< a href = "#to_s%28io%29-instance-method" class = "signature" > < strong > #to_s< / strong > (io)< / a >
< div class = "summary" > < p > Constructs an annotated source string (like what we parse).< / p > < / div >
< / li >
< / ul >
< div class = "methods-inherited" >
< / div >
< h2 >
< a id = "constructor-detail" class = "anchor" href = "#constructor-detail" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Constructor Detail
< / h2 >
2022-08-01 21:51:27 +00:00
< div class = "entry-detail" id = "new(lines:Array(String),annotations:Enumerable(Tuple(Int32,String,String)))-class-method" >
2021-10-22 17:56:12 +00:00
< div class = "signature" >
2022-08-01 21:51:27 +00:00
def self.< strong > new< / strong > (lines : Array(String), annotations : Enumerable(Tuple(Int32, String, String)))
2021-10-22 17:56:12 +00:00
2022-08-01 21:51:27 +00:00
< a class = "method-permalink" href = "#new%28lines%3AArray%28String%29%2Cannotations%3AEnumerable%28Tuple%28Int32%2CString%2CString%29%29%29-class-method" > #< / a >
2021-10-22 17:56:12 +00:00
< / div >
< div class = "doc" >
< p > < span class = "flag purple" > NOTE< / span > Annotations are sorted so that reconstructing the annotation
text via < code > < a href = "../../Ameba/Spec/AnnotatedSource.html#to_s%28io%29-instance-method" > #to_s< / a > < / code > is deterministic.< / p >
< / div >
< br / >
< div >
2023-07-02 12:36:02 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L43" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
2022-08-01 21:51:27 +00:00
< div class = "entry-detail" id = "new(lines:Array(String),issues:Enumerable(Issue))-class-method" >
2021-10-22 17:56:12 +00:00
< div class = "signature" >
2022-08-01 21:51:27 +00:00
def self.< strong > new< / strong > (lines : Array(String), issues : Enumerable(< a href = "../../Ameba/Issue.html" > Issue< / a > ))
2021-10-22 17:56:12 +00:00
2022-08-01 21:51:27 +00:00
< a class = "method-permalink" href = "#new%28lines%3AArray%28String%29%2Cissues%3AEnumerable%28Issue%29%29-class-method" > #< / a >
2021-10-22 17:56:12 +00:00
< / div >
< div class = "doc" >
< p > Annotates the source code with the Ameba issues provided.< / p >
< p > < span class = "flag purple" > NOTE< / span > Annotations are sorted so that reconstructing the annotation
text via < code > < a href = "../../Ameba/Spec/AnnotatedSource.html#to_s%28io%29-instance-method" > #to_s< / a > < / code > is deterministic.< / p >
< / div >
< br / >
< div >
2023-07-02 12:36:02 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L53" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
< h2 >
< a id = "class-method-detail" class = "anchor" href = "#class-method-detail" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Class Method Detail
< / h2 >
< div class = "entry-detail" id = "parse(annotated_code)-class-method" >
< div class = "signature" >
def self.< strong > parse< / strong > (annotated_code)
< a class = "method-permalink" href = "#parse%28annotated_code%29-class-method" > #< / a >
< / div >
< div class = "doc" >
< p > Separates annotation lines from code lines. Tracks the real
code line number that each annotation corresponds to.< / p >
< / div >
< br / >
< div >
2023-07-02 12:36:02 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L16" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
< h2 >
< a id = "instance-method-detail" class = "anchor" href = "#instance-method-detail" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Instance Method Detail
< / h2 >
< div class = "entry-detail" id = "==(other)-instance-method" >
< div class = "signature" >
def < strong > ==< / strong > (other)
< a class = "method-permalink" href = "#%3D%3D%28other%29-instance-method" > #< / a >
< / div >
< div class = "doc" >
< div class = "doc-inherited" >
Description copied from class Reference
< / div >
< p > Returns < code > false< / code > (other can only be a < code > Value< / code > here).< / p >
< / div >
< br / >
< div >
2023-07-02 12:36:02 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L59" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "annotations:Array(Tuple(Int32,String,String))-instance-method" >
< div class = "signature" >
def < strong > annotations< / strong > : Array(Tuple(Int32, String, String))
< a class = "method-permalink" href = "#annotations%3AArray%28Tuple%28Int32%2CString%2CString%29%29-instance-method" > #< / a >
< / div >
< div class = "doc" >
< p > Each entry is the line number, annotation prefix, and message.
The prefix is empty if the annotation is at the end of a code line.< / p >
< / div >
< br / >
< div >
2023-07-02 12:36:02 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L12" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "lines:Array(String)-instance-method" >
< div class = "signature" >
def < strong > lines< / strong > : Array(String)
< a class = "method-permalink" href = "#lines%3AArray%28String%29-instance-method" > #< / a >
< / div >
< br / >
< div >
2023-07-02 12:36:02 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L8" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "to_s(io)-instance-method" >
< div class = "signature" >
def < strong > to_s< / strong > (io)
< a class = "method-permalink" href = "#to_s%28io%29-instance-method" > #< / a >
< / div >
< div class = "doc" >
< p > Constructs an annotated source string (like what we parse).< / p >
< p > Reconstructs a deterministic annotated source string. This is
useful for eliminating semantically irrelevant annotation
ordering differences.< / p >
< pre > < code class = "language-crystal" > source1 < span class = "o" > =< / span > < span class = "t" > AnnotatedSource< / span > .parse(< span class = "s" > < < -CRYSTAL< / span > )
< span class = "s" > line1
^ Annotation 1
^^ Annotation 2
CRYSTAL< / span >
source2 < span class = "o" > =< / span > < span class = "t" > AnnotatedSource< / span > .parse(< span class = "s" > < < -CRYSTAL< / span > )
< span class = "s" > line1
^^ Annotation 2
^ Annotation 1
CRYSTAL< / span >
source1.to_s < span class = "o" > ==< / span > source2.to_s < span class = "c" > # => true< / span > < / code > < / pre >
< / div >
< br / >
< div >
2023-07-02 12:36:02 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/5cff760/src/ameba/spec/annotated_source.cr#L110" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
< / div >
< / body >
< / html >