Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Annlix
ShellCheck
提交
0f835a5a
S
ShellCheck
项目概览
Annlix
/
ShellCheck
与 Fork 源项目一致
Fork自
镜像 / koalaman / ShellCheck
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
ShellCheck
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0f835a5a
编写于
7月 28, 2018
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Don't trigger SC2222 for fallthrough case branches (fixes #1044)
上级
4b0a35d4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
4 deletion
+10
-4
CHANGELOG.md
CHANGELOG.md
+1
-0
src/ShellCheck/Analytics.hs
src/ShellCheck/Analytics.hs
+9
-4
未找到文件。
CHANGELOG.md
浏览文件 @
0f835a5a
...
...
@@ -5,6 +5,7 @@
-
SC1117 about unknown double-quoted escape sequences has been retired
### Fixed
-
SC2021 no longer triggers for equivalence classes like '[=e=]'
-
SC2221/SC2222 no longer mistriggers on fall-through case branches
## v0.5.0 - 2018-05-31
### Added
...
...
src/ShellCheck/Analytics.hs
浏览文件 @
0f835a5a
...
...
@@ -2686,26 +2686,31 @@ prop_checkUnmatchableCases5 = verify checkUnmatchableCases "case $f in *.txt) tr
prop_checkUnmatchableCases6
=
verifyNot
checkUnmatchableCases
"case $f in ?*) true;; *) false;; esac"
prop_checkUnmatchableCases7
=
verifyNot
checkUnmatchableCases
"case $f in $(x)) true;; asdf) false;; esac"
prop_checkUnmatchableCases8
=
verify
checkUnmatchableCases
"case $f in cow) true;; bar|cow) false;; esac"
prop_checkUnmatchableCases9
=
verifyNot
checkUnmatchableCases
"case $f in x) true;;& x) false;; esac"
checkUnmatchableCases
_
t
=
case
t
of
T_CaseExpression
_
word
list
->
do
let
patterns
=
concatMap
snd3
list
-- Check all patterns for whether they can ever match
let
allpatterns
=
concatMap
snd3
list
-- Check only the non-fallthrough branches for shadowing
let
breakpatterns
=
concatMap
snd3
$
filter
(
\
x
->
fst3
x
==
CaseBreak
)
list
if
isConstant
word
then
warn
(
getId
word
)
2194
"This word is constant. Did you forget the $ on a variable?"
else
potentially
$
do
pg
<-
wordToPseudoGlob
word
return
$
mapM_
(
check
pg
)
patterns
return
$
mapM_
(
check
pg
)
all
patterns
let
exactGlobs
=
tupMap
wordToExactPseudoGlob
patterns
let
fuzzyGlobs
=
tupMap
wordToPseudoGlob
patterns
let
exactGlobs
=
tupMap
wordToExactPseudoGlob
break
patterns
let
fuzzyGlobs
=
tupMap
wordToPseudoGlob
break
patterns
let
dominators
=
zip
exactGlobs
(
tails
$
drop
1
fuzzyGlobs
)
mapM_
checkDoms
dominators
_
->
return
()
where
fst3
(
x
,
_
,
_
)
=
x
snd3
(
_
,
x
,
_
)
=
x
check
target
candidate
=
potentially
$
do
candidateGlob
<-
wordToPseudoGlob
candidate
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录