Skip to content

Commit

Permalink
[analyzer] LocalizationChecker: Support new localizable APIs.
Browse files Browse the repository at this point in the history
Add support for new methods that were added in macOS High Sierra & iOS 11
and require a localized string.

Patch by Kulpreet Chilana!

rdar://problem/32795210
Differential Revision: https://reviews.llvm.org/D34266

llvm-svn: 305896
  • Loading branch information
haoNoQ committed Jun 21, 2017
1 parent 2c1e8b7 commit 928d72f
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
Expand Up @@ -281,6 +281,9 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
IdentifierInfo *setLabelNSSegmentedControl[] = {
&Ctx.Idents.get("setLabel"), &Ctx.Idents.get("forSegment")};
ADD_METHOD(NSSegmentedControl, setLabelNSSegmentedControl, 2, 0)
IdentifierInfo *setToolTipNSSegmentedControl[] = {
&Ctx.Idents.get("setToolTip"), &Ctx.Idents.get("forSegment")};
ADD_METHOD(NSSegmentedControl, setToolTipNSSegmentedControl, 2, 0)

NEW_RECEIVER(NSButtonCell)
ADD_UNARY_METHOD(NSButtonCell, setTitle, 0)
Expand Down Expand Up @@ -562,6 +565,46 @@ void NonLocalizedStringChecker::initUIMethods(ASTContext &Ctx) const {
IdentifierInfo *setTitleUISegmentedControl[] = {
&Ctx.Idents.get("setTitle"), &Ctx.Idents.get("forSegmentAtIndex")};
ADD_METHOD(UISegmentedControl, setTitleUISegmentedControl, 2, 0)

NEW_RECEIVER(NSAccessibilityCustomRotorItemResult)
IdentifierInfo
*initWithItemLoadingTokenNSAccessibilityCustomRotorItemResult[] = {
&Ctx.Idents.get("initWithItemLoadingToken"),
&Ctx.Idents.get("customLabel")};
ADD_METHOD(NSAccessibilityCustomRotorItemResult,
initWithItemLoadingTokenNSAccessibilityCustomRotorItemResult, 2, 1)
ADD_UNARY_METHOD(NSAccessibilityCustomRotorItemResult, setCustomLabel, 0)

NEW_RECEIVER(UIContextualAction)
IdentifierInfo *contextualActionWithStyleUIContextualAction[] = {
&Ctx.Idents.get("contextualActionWithStyle"), &Ctx.Idents.get("title"),
&Ctx.Idents.get("handler")};
ADD_METHOD(UIContextualAction, contextualActionWithStyleUIContextualAction, 3,
1)
ADD_UNARY_METHOD(UIContextualAction, setTitle, 0)

NEW_RECEIVER(NSAccessibilityCustomRotor)
IdentifierInfo *initWithLabelNSAccessibilityCustomRotor[] = {
&Ctx.Idents.get("initWithLabel"), &Ctx.Idents.get("itemSearchDelegate")};
ADD_METHOD(NSAccessibilityCustomRotor,
initWithLabelNSAccessibilityCustomRotor, 2, 0)
ADD_UNARY_METHOD(NSAccessibilityCustomRotor, setLabel, 0)

NEW_RECEIVER(NSWindowTab)
ADD_UNARY_METHOD(NSWindowTab, setTitle, 0)
ADD_UNARY_METHOD(NSWindowTab, setToolTip, 0)

NEW_RECEIVER(NSAccessibilityCustomAction)
IdentifierInfo *initWithNameNSAccessibilityCustomAction[] = {
&Ctx.Idents.get("initWithName"), &Ctx.Idents.get("handler")};
ADD_METHOD(NSAccessibilityCustomAction,
initWithNameNSAccessibilityCustomAction, 2, 0)
IdentifierInfo *initWithNameTargetNSAccessibilityCustomAction[] = {
&Ctx.Idents.get("initWithName"), &Ctx.Idents.get("target"),
&Ctx.Idents.get("selector")};
ADD_METHOD(NSAccessibilityCustomAction,
initWithNameTargetNSAccessibilityCustomAction, 3, 0)
ADD_UNARY_METHOD(NSAccessibilityCustomAction, setName, 0)
}

#define LSF_INSERT(function_name) LSF.insert(&Ctx.Idents.get(function_name));
Expand Down

0 comments on commit 928d72f

Please sign in to comment.