Pull to refresh

Comments 6

а почему код новой инспекции написан не на Kotlin? :)

Я пока не особо оценил Котлин. Кроме того, я занимаюсь поддержкой языка Java, поэтому для догфудинга разумно самому писать на этом же языке.

Эта инспекция будет работать только для java-кода? Для того же Kotlin или Scala нужно писать отдельно? Есть ли в принципе какие-то кросс-языковые инспекции?

Да, эта будет только для джавы. Кросс-языковые инспекции (Java-Kotlin) есть, но пока очень мало. Там же не только синтаксис, но и семантика существенно различна. Например, в Java мы всегда считаем, что плюс не создаст побочных эффектов (строго говоря, может, если вызовется странный toString), а в Котлине плюс может быть перегружен. Тонкостей множество даже между такими близкими языками.

parent instanceof PsiTypeCastExpression || parent instanceof PsiConditionalExpression

А когда появятся еще какие-то выражения (например, switch-expression), придется перелопачивать код всех инспекций?

Ну сами они волшебным образом не заработают, конечно. Но я бы не сказал, что прямо всех инспекций. Вот с лямбдами до сих пор попадаются недоработки. Например, раньше если в поддереве искался return, то только классы надо было игнорировать, а теперь ещё и лямбды. Некоторые инспекции могут быть не обновлены и принять return внутри лямбды за выход из неё. Хотя их уже мало осталось. А есть способ лучше?

Sign up to leave a comment.