I can’t remove an unchecked cast warning when casting to an external interface even though I try to suppress it.
@Suppress(“UNCHECKED_CAST”)
val response = error.asDynamic().response as AxiosResponse<*>
Compile warning: “Unchecked cast to external interface: dynamic to AxiosResponse<*>”
Checking with “is” doesn’t work either.
if (error.asDynamic().response is AxiosResponse<*>)
Compile error: “Cannot check for external interface: AxiosResponse<*>”
This is a different diagnostic UNCHECKED_CAST_TO_EXTERNAL_INTERFACE
. How are you suppressing it? It should work automatically in Intellij IDEA from the popup menu → Right arrow → Suppress for statement.
I was using @Suppress(“UNCHECKED_CAST”) because that’s what any documentation said to use (couldn’t find anything about external interfaces).
For some reason my IntelliJ does not pop up with an inspection when I right click the warning.
@Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE")
val response: AxiosResponse<String> = error.asDynamic().response
The above did not work (tried AxiosResponse< String > and AxiosResponse<*>)
@Suppress("UNCHECKED_CAST_TO_EXTERNAL_INTERFACE")
val response = error.asDynamic().response as AxiosResponse<String>
However, the above did work.
Thanks.
Currently it doesn’t work with right click. Try this: position your cursor somewhere on the warning text and press Alt+Enter to get the inspections popup.
As of IDEA 2019.2 EAP you can indeed right-click on the warning and then click on the first item “Show context actions” to get the inspections popup.
Also, I agree that the different warning is a little confusing. Maybe it’s worth to document, I created an issue here: https://youtrack.jetbrains.com/issue/KT-31845