Class CurrentRowAccessDiagnostic
java.lang.Object
org.antlr.v4.runtime.tree.AbstractParseTreeVisitor<ParseTree>
com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor<ParseTree>
com.github._1c_syntax.bsl.languageserver.diagnostics.AbstractVisitorDiagnostic
com.github._1c_syntax.bsl.languageserver.diagnostics.CurrentRowAccessDiagnostic
- All Implemented Interfaces:
BSLDiagnostic, BSLParserVisitor<ParseTree>, ParseTreeVisitor<ParseTree>
@DiagnosticMetadata(type=CODE_SMELL,
severity=MAJOR,
scope=BSL,
minutesToFix=2,
tags={PERFORMANCE,BADPRACTICE})
public class CurrentRowAccessDiagnostic
extends AbstractVisitorDiagnostic
Обращение к данным строки динамического списка через
ТекущаяСтрока.
ТаблицаФормы.ТекущаяСтрока.Реквизит вызывает чтение объекта из базы
для каждой строки. Правильно использовать .ТекущиеДанные.Реквизит,
который работает с уже считанными данными.
Диагностика срабатывает только если ТекущаяСтрока вызывается на
таблице формы, отображающей динамический список (тип
ТаблицаФормы.ДинамическийСписок): у таблиц над табличными частями,
деревьями значений и прочими данными формы обращение к текущей строке
базу не дёргает.
-
Field Summary
Fields inherited from class AbstractVisitorDiagnostic
diagnosticStorage, documentContext, info -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionMethods inherited from class AbstractVisitorDiagnostic
getDiagnostics, getInfo, setInfoMethods inherited from class BSLParserBaseVisitor
visitAcceptor, visitAccessCall, visitAccessIndex, visitAddHandlerStatement, visitAnnotation, visitAnnotationName, visitAnnotationParam, visitAnnotationParamName, visitAnnotationParams, visitAnnotationParamValue, visitAssignment, visitBoolOperation, visitBreakStatement, visitCallParam, visitCallParamList, visitCallStatement, visitCodeBlock, visitCompareOperation, visitCompilerDirective, visitCompilerDirectiveSymbol, visitComplexIdentifier, visitCompoundStatement, visitConstValue, visitContinueStatement, visitDefaultValue, visitDoCall, visitElseBranch, visitElsifBranch, visitEvent, visitExceptCodeBlock, visitExecuteStatement, visitExpression, visitFile, visitFileCodeBlock, visitFileCodeBlockBeforeSub, visitForEachStatement, visitForStatement, visitFuncDeclaration, visitFunction, visitGlobalMethodCall, visitGotoStatement, visitHandler, visitIfBranch, visitIfStatement, visitIncompleteAccess, visitLabel, visitLabelName, visitLValue, visitMember, visitMethodCall, visitMethodName, visitModifier, visitModuleAnnotations, visitModuleVar, visitModuleVarDeclaration, visitModuleVars, visitModuleVarsList, visitMultilineString, visitNewExpression, visitNumeric, visitOperation, visitParam, visitParamList, visitPreproc_boolOperation, visitPreproc_else, visitPreproc_elsif, visitPreproc_endif, visitPreproc_expression, visitPreproc_if, visitPreproc_logicalExpression, visitPreproc_logicalOperand, visitPreproc_native, visitPreproc_stack, visitPreproc_symbol, visitPreproc_unknownSymbol, visitPreprocessor, visitProcDeclaration, visitProcedure, visitRaiseStatement, visitRegionEnd, visitRegionName, visitRegionStart, visitRemoveHandlerStatement, visitReturnStatement, visitShebang, visitStatement, visitString, visitSub, visitSubCodeBlock, visitSubName, visitSubs, visitSubVar, visitSubVarDeclaration, visitSubVars, visitSubVarsList, visitTernaryOperator, visitTryCodeBlock, visitTryStatement, visitTypeName, visitUnaryModifier, visitUse, visitUsedLib, visitVar_name, visitWaitExpression, visitWaitStatement, visitWhileStatementMethods inherited from class AbstractParseTreeVisitor
aggregateResult, defaultResult, shouldVisitNextChild, visit, visitChildren, visitErrorNode, visitTerminalMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface BSLDiagnostic
configureMethods inherited from interface ParseTreeVisitor
visit, visitChildren, visitErrorNode, visitTerminal
-
Constructor Details
-
CurrentRowAccessDiagnostic
-
-
Method Details
-
visitAccessProperty
- Specified by:
visitAccessPropertyin interfaceBSLParserVisitor<ParseTree>- Overrides:
visitAccessPropertyin classBSLParserBaseVisitor<ParseTree>
-