From 690d6517d752e4db728fa77a62e36b7e498d908a Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 25 Oct 2022 10:16:37 +0200 Subject: [PATCH] Kotlin: Add abstract to concrete type cast guarded by `when` --- .../AbstractToConcreteCollection.expected | 1 + .../AbstractToConcreteCollection.qlref | 1 + .../kotlin/query-tests/AbstractToConcreteCollection/Test.kt | 5 +++++ 3 files changed, 7 insertions(+) create mode 100644 java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.expected create mode 100644 java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.qlref create mode 100644 java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/Test.kt diff --git a/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.expected b/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.expected new file mode 100644 index 00000000000..6160059acfd --- /dev/null +++ b/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.expected @@ -0,0 +1 @@ +| Test.kt:3:9:3:9 | | $@ is cast to the concrete type $@, losing abstraction. | file:///modules/java.base/java/util/List.class:0:0:0:0 | List | List | file:///modules/java.base/java/util/ArrayList.class:0:0:0:0 | ArrayList | ArrayList | diff --git a/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.qlref b/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.qlref new file mode 100644 index 00000000000..ddc5d95d9d1 --- /dev/null +++ b/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/AbstractToConcreteCollection.qlref @@ -0,0 +1 @@ +Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql \ No newline at end of file diff --git a/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/Test.kt b/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/Test.kt new file mode 100644 index 00000000000..c05317462c4 --- /dev/null +++ b/java/ql/test/kotlin/query-tests/AbstractToConcreteCollection/Test.kt @@ -0,0 +1,5 @@ +fun fn(m: MutableList) { + if (m is ArrayList) { + m.ensureCapacity(5) + } +}