package Ġcom . ser ch in ast ico . lin . detector s Ċ Ċ import Ġcom . android . tools . lint . detector . api . Scope Ċ import Ġcom . ser ch in ast ico . lin . annotations . Detector Ċ import Ġcom . ser ch in ast ico . lin . dsl . detector Ċ import Ġcom . ser ch in ast ico . lin . dsl . is Class Or Subclass Of Ċ import Ġcom . ser ch in ast ico . lin . dsl . issue Ċ import Ġorg . jetbrains . u ast . U Call Expression Ċ Ċ @ Detector Ċ fun Ġno Print StackTrace Calls () Ġ= Ġdetector ( ĊĠĠĠ Ġissue ( ĊĠĠĠĠĠĠĠ ĠScope . JAVA _ FILE _ SCOPE , ĊĠĠĠĠĠĠĠ Ġ" There Ġshould Ġnot Ġbe Ġcalls Ġto Ġthe Ġprint StackTrace Ġmethod Ġin ĠThrowable Ġinstances ", ĊĠĠĠĠĠĠĠ Ġ" Errors Ġshould Ġbe Ġlogged Ġwith Ġa Ġconfigured Ġlogger Ġor Ġsent Ġto Ġthe Ġbackend Ġfor Ġfaster Ġresponse " ĊĠĠĠ Ġ) Ċ ) Ġ{ ĊĠĠĠ Ġcall Expression Ġ{ Ġsuch That Ġ{ Ġit . is Print StackTrace Call Ġ} Ġ} Ċ } Ċ Ċ private Ġinline Ġval ĠU Call Expression . is Print StackTrace Call : ĠBoolean ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreceiver Type Ġ= Ġreceiver Type Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġis Receiver Child Of Throwable Ġ= Ġreceiver Type . is Class Or Subclass Of (" java . lang . Throwable ", Ġ" kotlin . Throwable ") ĊĠĠĠĠĠĠĠ Ġval Ġis Method Print StackTrace Ġ= Ġmethod Identifier ?. name Ġ== Ġ" printStackTrace " ĊĊĠĠĠĠĠĠĠ Ġreturn Ġis Receiver Child Of Throwable Ġ&& Ġis Method Print StackTrace ĊĠĠĠ Ġ} Ċ