檢查告警)
在 TypeScript 或 JavaScript 項(xiàng)目里看到eslint-disable-next-line no-unreachable時(shí),我們很容易形成一個(gè)直覺,某個(gè)靜態(tài)檢查器認(rèn)為下一行存在不可達(dá)代碼,但開發(fā)者確信這里屬于特殊情況,于是通過一條源代碼級(jí)指令,只關(guān)閉這一條規(guī)則,而且盡可能縮小影響范圍。把這個(gè)思路帶到 ABAP 里,答案并不是簡(jiǎn)單的有或者沒有。ABAP 確實(shí)存在非常接近這種設(shè)計(jì)的機(jī)制,而且不止一種。現(xiàn)代 ABAP 最重要的是pragma,典型形式是##NEEDED、##NO_TEXT、##SHADOW等。經(jīng)典 ABAP 里還存在歷史較久的pseudo comment。如果問題來自ATC或Code Inspector,還可能通過ATC Exemption處理。不過,ABAP 與 ESLint 有一個(gè)極其重要的差異。eslint-disable-next-line no-unreachable可以理解成對(duì)下一行的某個(gè) lint rule 做局部關(guān)閉,而 ABAPpragma通常針對(duì)當(dāng)前 ABAP statement 生效,并且只能關(guān)閉系統(tǒng)明確允許通過該pragma抑制的 warning。它不是一個(gè)萬能的disable warning開關(guān)。更重要的是,如果所謂的 unreachable code 已經(jīng)