3.16 How to check if an ode is linear ode?

ode:=diff(y(x),x$3)+ x*diff(y(x),x)+sin(x)=0; 
if has(DEtools:-odeadvisor(ode,y(x),['linear']),_linear) then 
   print("linear"); 
else 
   print("not linear ode"); 
fi
 
The above prints "linear"
ode:=y(x)*diff(y(x),x$3)+ x*diff(y(x),x)+sin(x)=0; 
if has(DEtools:-odeadvisor(ode,y(x),['linear']),_linear) then 
   print("linear"); 
else 
   print("not linear ode"); 
fi
 
The above prints "notĀ linearĀ ode". This works for any ode order.