Skip to content

Commit a0c7f51

Browse files
committed
Addressing Jordan's code review feedbacks. NFC
1 parent 696cc1c commit a0c7f51

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

lib/Sema/CSDiag.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2457,17 +2457,18 @@ findCorrectEnumCaseName(MetatypeType *MetaTy, LookupResult &Result,
24572457
DeclName memberName) {
24582458
if (!memberName.isSimpleName())
24592459
return DeclName();
2460-
if (!MetaTy->getInstanceType()->is<EnumType>())
2460+
if (!MetaTy->getInstanceType()->is<EnumType>() &&
2461+
!MetaTy->getInstanceType()->is<BoundGenericEnumType>())
24612462
return DeclName();
2462-
std::vector<DeclName> candidates;
2463+
llvm::SmallVector<DeclName, 4> candidates;
24632464
for (auto &correction : Result) {
24642465
DeclName correctName = correction.Decl->getFullName();
24652466
if (!correctName.isSimpleName())
24662467
continue;
24672468
if (!isa<EnumElementDecl>(correction.Decl))
24682469
continue;
24692470
if (correctName.getBaseName().str().
2470-
compare_lower(memberName.getBaseName().str()) == 0)
2471+
equals_lower(memberName.getBaseName().str()))
24712472
candidates.push_back(correctName);
24722473
}
24732474
if (candidates.size() == 1)

test/NameBinding/name_lookup.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,3 +541,13 @@ func foo() {
541541
_ = MyEnum.Two // expected-error {{enum type 'MyEnum' has no case 'Two'; did you mean 'two'}}{{14-17=two}}
542542
_ = MyEnum.OneTwoThree // expected-error {{enum type 'MyEnum' has no case 'OneTwoThree'; did you mean 'oneTwoThree'}}{{14-25=oneTwoThree}}
543543
}
544+
545+
enum MyGenericEnum<T> {
546+
case one(T)
547+
case oneTwo(T)
548+
}
549+
550+
func foo1() {
551+
_ = MyGenericEnum<Int>.One // expected-error {{enum type 'MyGenericEnum<Int>' has no case 'One'; did you mean 'one'}}{{26-29=one}}
552+
_ = MyGenericEnum<Int>.OneTwo // expected-error {{enum type 'MyGenericEnum<Int>' has no case 'OneTwo'; did you mean 'oneTwo'}}{{26-32=oneTwo}}
553+
}

0 commit comments

Comments
 (0)