Add inspection to detect boxes *Range.start & endInclusive

These properties can be replaced with equivalent collections first & last.
#KT-15537 Fixed
This commit is contained in:
Jan Gerling
2019-03-01 17:23:40 +03:00
committed by Mikhail Glukhikh
parent 401d8c2d70
commit 162de77b71
18 changed files with 229 additions and 0 deletions
@@ -0,0 +1 @@
org.jetbrains.kotlin.idea.inspections.ReplaceRangeStartEndInclusiveWithFirstLastInspection
@@ -0,0 +1,11 @@
// PROBLEM: none
class MyRange : ClosedRange<String> {
override val start: String get() = "a"
override val endInclusive: String = "z"
}
fun main() {
val range = MyRange()
val start = range.<caret>endInclusive
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : CharRange = 'a' .. 'z'
range.<caret>endInclusive
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : CharRange = 'a' .. 'z'
range.last
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : IntRange = 1..2
range.<caret>endInclusive
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : IntRange = 1..2
range.last
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : LongRange = 1L..2L
range.<caret>endInclusive
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : LongRange = 1L..2L
range.last
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : CharRange = 'a' .. 'z'
range.<caret>start
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : CharRange = 'a' .. 'z'
range.first
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : IntRange = 1..2
range.<caret>start
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : IntRange = 1..2
range.first
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : LongRange = 1L..2L
range.<caret>start
}
@@ -0,0 +1,6 @@
// WITH_RUNTIME
fun foo() {
var range : LongRange = 1L..2L
range.first
}