File indexing completed on 2024-04-28 05:38:44

0001 #include <QtCore/QObject>
0002 #include <QtCore/QString>
0003 #include <QtCore/QEvent>
0004 #include <QtGui/QKeyEvent>
0005 
0006 void test(QEvent *ev)
0007 {
0008 
0009     switch (ev->type()) {
0010         case QEvent::MouseMove: {
0011             auto a = static_cast<QKeyEvent*>(ev); // Warn
0012             auto b = static_cast<QMouseEvent*>(ev); // OK
0013             break;
0014         }
0015         case QEvent::KeyPress: {
0016             auto a = static_cast<QKeyEvent*>(ev); // OK
0017             auto b = static_cast<QMouseEvent*>(ev); // Warn
0018 
0019             int val = 0;
0020             switch (val) { // unrelated switch
0021                 case 1000: {
0022                     auto a = static_cast<QKeyEvent*>(ev); // OK
0023                     auto b = static_cast<QMouseEvent*>(ev); // Warn
0024                 }
0025             }
0026             break;
0027         }
0028 
0029         case QEvent::Paint:
0030         case QEvent::MetaCall: {
0031             if (ev->type() == QEvent::Paint)
0032                 auto pe = static_cast<QPaintEvent*>(ev); // OK
0033             break;
0034         }
0035 
0036         default:
0037             break;
0038     }
0039 
0040 
0041 }