Add useless ternary operator diagnostic#1820
Add useless ternary operator diagnostic#1820EvgSychev wants to merge 8 commits into1c-syntax:developfrom
Conversation
|
Забыл досаду приатачить, как исправить? |
|
@EvgSychev отредактировать первый пост. но вроде @otymko уже поправил |
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Outdated
Show resolved
Hide resolved
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Show resolved
Hide resolved
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Outdated
Show resolved
Hide resolved
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Show resolved
Hide resolved
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Show resolved
Hide resolved
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Outdated
Show resolved
Hide resolved
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Outdated
Show resolved
Hide resolved
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Show resolved
Hide resolved
|
3 варианта потому, что это не один и тот же optinal, два преобразуются и каждый по своему, третий на тот случае если ничего не найдено, тесты код прошёл |
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticStorage.java
Outdated
Show resolved
Hide resolved
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticStorage.java
Outdated
Show resolved
Hide resolved
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticStorage.java
Outdated
Show resolved
Hide resolved
| } | ||
|
|
||
| private String getAdaptedText(String text) { | ||
| if(documentContext.getServerContext().getConfiguration().getDefaultLanguage() == MDLanguage.ENGLISH) { |
There was a problem hiding this comment.
лучше заменить на вызов documentContext.getScriptVariantLocale()
There was a problem hiding this comment.
ну и вообще бы это перевесить на работу с Resources#getResourceString
| .filter(BSLParser.ConstValueContext.class::isInstance) | ||
| .map(BSLParser.ConstValueContext.class::cast); | ||
|
|
||
| return tmpCtx |
There was a problem hiding this comment.
тэкс, а зачем все это ниже, если можно просто tmpCtx.filter(ctx -> ctx.TRUE() || ctx.FALSE).isPresent() и сменить возвращаемое значение с int на boolean?
There was a problem hiding this comment.
Дальше по коду нужно знать в какой ветке у нас Истина, в какой ложь
|
|
||
| var tmpCtx = Optional.of(expCtx) | ||
| .filter(ctx -> ctx.children.size() == 1) | ||
| .map(ctx -> (BSLParser.MemberContext) ctx.getChild(0)) |
There was a problem hiding this comment.
просто .map(ctx -> ctx.member()) или сразу .map(BSLParser.ExpressionContext::member)), нет нужды работать с детьми в грязную
| var tmpCtx = Optional.of(expCtx) | ||
| .filter(ctx -> ctx.children.size() == 1) | ||
| .map(ctx -> (BSLParser.MemberContext) ctx.getChild(0)) | ||
| .map(ctx -> ctx.getChild(0)) |
There was a problem hiding this comment.
вместо этого вызова и двух вызовов ниже можно взять .map(ctx -> ctx.constValue(). если constValue в этом expression нет, то метод вернет null и Optional станет empty
| var exp = ctx.expression(); | ||
| var condition = getBooleanToken(exp.get(0)); | ||
| var trueBranch = getBooleanToken(exp.get(1)); | ||
| var falseBranch = getBooleanToken(exp.get(2)); |
There was a problem hiding this comment.
я бы на всякий случай перед всеми этими дерганиями по индексу проверил, что exp.size() == 3. опасаюсь IndexOutOfBoundException при наборе текста
There was a problem hiding this comment.
Если не 3 падаем?
...a/com/github/_1c_syntax/bsl/languageserver/diagnostics/UselessTernaryOperatorDiagnostic.java
Outdated
Show resolved
Hide resolved
…tics/UselessTernaryOperatorDiagnostic.java
|
/rebase |
|
@EvgSychev мерж поломал addDiagnostic |
|
@nixel2007 ошибочно сделал pull, будет исправлено |
|
Superseded by #3629 |
Описание
Связанные задачи
Closes #203
Чеклист
Общие
gradlew precommit)Для диагностик
Дополнительно