Skip to content

Commit 1fc2cd9

Browse files
committed
Sema: Remove some pointless passing around of ModuleDecl
1 parent 4f32598 commit 1fc2cd9

File tree

5 files changed

+18
-24
lines changed

5 files changed

+18
-24
lines changed

lib/Sema/AssociatedTypeInference.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,7 @@ static ResolveWitnessResult resolveTypeWitnessViaLookup(
538538
// clause, check those requirements now.
539539
if (!TypeChecker::checkContextualRequirements(
540540
genericDecl, dc->getSelfInterfaceType(), SourceLoc(),
541-
dc->getParentModule(), dc->getGenericSignatureOfContext())) {
541+
dc->getGenericSignatureOfContext())) {
542542
continue;
543543
}
544544

lib/Sema/TypeCheckGeneric.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -914,7 +914,7 @@ void TypeChecker::diagnoseRequirementFailure(
914914
const CheckGenericArgumentsResult::RequirementFailureInfo &reqFailureInfo,
915915
SourceLoc errorLoc, SourceLoc noteLoc, Type targetTy,
916916
ArrayRef<GenericTypeParamType *> genericParams,
917-
TypeSubstitutionFn substitutions, ModuleDecl *module) {
917+
TypeSubstitutionFn substitutions) {
918918
assert(errorLoc.isValid() && noteLoc.isValid());
919919

920920
const auto &req = reqFailureInfo.Req;
@@ -939,7 +939,7 @@ void TypeChecker::diagnoseRequirementFailure(
939939

940940
case RequirementKind::Conformance: {
941941
diagnoseConformanceFailure(substReq.getFirstType(),
942-
substReq.getProtocolDecl(), module, errorLoc);
942+
substReq.getProtocolDecl(), nullptr, errorLoc);
943943

944944
if (reqFailureInfo.ReqPath.empty())
945945
return;
@@ -965,7 +965,7 @@ void TypeChecker::diagnoseRequirementFailure(
965965
break;
966966
}
967967

968-
ASTContext &ctx = module->getASTContext();
968+
ASTContext &ctx = targetTy->getASTContext();
969969
// FIXME: Poor source-location information.
970970
ctx.Diags.diagnose(errorLoc, diagnostic, targetTy, substReq.getFirstType(),
971971
substSecondTy);
@@ -981,7 +981,7 @@ void TypeChecker::diagnoseRequirementFailure(
981981
}
982982

983983
CheckGenericArgumentsResult TypeChecker::checkGenericArgumentsForDiagnostics(
984-
ModuleDecl *module, ArrayRef<Requirement> requirements,
984+
ArrayRef<Requirement> requirements,
985985
TypeSubstitutionFn substitutions) {
986986
using ParentConditionalConformances =
987987
SmallVector<ParentConditionalConformance, 2>;

lib/Sema/TypeCheckProtocol.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4911,7 +4911,7 @@ static void ensureRequirementsAreSatisfied(ASTContext &ctx,
49114911
}
49124912

49134913
const auto result = TypeChecker::checkGenericArgumentsForDiagnostics(
4914-
module, reqSig, QuerySubstitutionMap{substitutions});
4914+
reqSig, QuerySubstitutionMap{substitutions});
49154915
switch (result.getKind()) {
49164916
case CheckRequirementsResult::Success:
49174917
// Go on to check exportability.
@@ -4924,13 +4924,13 @@ static void ensureRequirementsAreSatisfied(ASTContext &ctx,
49244924
if (!conformance->isInvalid()) {
49254925
if (result.getKind() == CheckRequirementsResult::RequirementFailure) {
49264926
ctx.addDelayedConformanceDiag(conformance, /*isError=*/true,
4927-
[result, proto, substitutions, module](NormalProtocolConformance *conformance) {
4927+
[result, proto, substitutions](NormalProtocolConformance *conformance) {
49284928
TypeChecker::diagnoseRequirementFailure(
49294929
result.getRequirementFailureInfo(),
49304930
conformance->getLoc(), conformance->getLoc(),
49314931
proto->getDeclaredInterfaceType(),
49324932
{proto->getSelfInterfaceType()->castTo<GenericTypeParamType>()},
4933-
QuerySubstitutionMap{substitutions}, module);
4933+
QuerySubstitutionMap{substitutions});
49344934
});
49354935
}
49364936

@@ -5335,7 +5335,7 @@ void swift::diagnoseConformanceFailure(Type T,
53355335
if (T->hasError())
53365336
return;
53375337

5338-
ASTContext &ctx = DC->getASTContext();
5338+
ASTContext &ctx = Proto->getASTContext();
53395339
auto &diags = ctx.Diags;
53405340

53415341
// If we're checking conformance of an existential type to a protocol,
@@ -5443,7 +5443,7 @@ void swift::diagnoseConformanceFailure(Type T,
54435443
T);
54445444

54455445
// Try to suggest inheriting from NSObject instead.
5446-
auto classDecl = dyn_cast<ClassDecl>(DC);
5446+
auto classDecl = dyn_cast_or_null<ClassDecl>(DC);
54475447
if (!classDecl)
54485448
return;
54495449

lib/Sema/TypeCheckType.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,6 @@ static bool isPointerToVoid(ASTContext &Ctx, Type Ty, bool &IsMutable) {
605605

606606
bool TypeChecker::checkContextualRequirements(GenericTypeDecl *decl,
607607
Type parentTy, SourceLoc loc,
608-
ModuleDecl *module,
609608
GenericSignature contextSig) {
610609
assert(parentTy && "expected a parent type");
611610
if (parentTy->hasUnboundGenericType() || parentTy->hasTypeVariable()) {
@@ -657,14 +656,14 @@ bool TypeChecker::checkContextualRequirements(GenericTypeDecl *decl,
657656
};
658657

659658
const auto result = TypeChecker::checkGenericArgumentsForDiagnostics(
660-
module, genericSig.getRequirements(), substitutions);
659+
genericSig.getRequirements(), substitutions);
661660
switch (result.getKind()) {
662661
case CheckRequirementsResult::RequirementFailure:
663662
if (loc.isValid()) {
664663
TypeChecker::diagnoseRequirementFailure(
665664
result.getRequirementFailureInfo(), loc, noteLoc,
666665
decl->getDeclaredInterfaceType(), genericSig.getGenericParams(),
667-
substitutions, module);
666+
substitutions);
668667
}
669668

670669
return false;
@@ -834,8 +833,7 @@ static Type applyGenericArguments(Type type,
834833
}
835834

836835
if (TypeChecker::checkContextualRequirements(
837-
decl, parentTy, loc, dc->getParentModule(),
838-
resolution.getGenericSignature()))
836+
decl, parentTy, loc, resolution.getGenericSignature()))
839837
return type;
840838

841839
return ErrorType::get(resolution.getASTContext());
@@ -1243,8 +1241,6 @@ Type TypeResolution::applyUnboundGenericArguments(
12431241

12441242
// Check the generic arguments against the requirements of the declaration's
12451243
// generic signature.
1246-
auto *module = getDeclContext()->getParentModule();
1247-
12481244
if (!skipRequirementsCheck && getStage() == TypeResolutionStage::Interface) {
12491245
// Check the generic arguments against the requirements of the declaration's
12501246
// generic signature.
@@ -1274,14 +1270,14 @@ Type TypeResolution::applyUnboundGenericArguments(
12741270
};
12751271

12761272
const auto result = TypeChecker::checkGenericArgumentsForDiagnostics(
1277-
module, genericSig.getRequirements(), substitutions);
1273+
genericSig.getRequirements(), substitutions);
12781274
switch (result.getKind()) {
12791275
case CheckRequirementsResult::RequirementFailure:
12801276
if (loc.isValid()) {
12811277
TypeChecker::diagnoseRequirementFailure(
12821278
result.getRequirementFailureInfo(), loc, noteLoc,
12831279
UnboundGenericType::get(decl, parentTy, getASTContext()),
1284-
genericSig.getGenericParams(), substitutions, module);
1280+
genericSig.getGenericParams(), substitutions);
12851281
}
12861282

12871283
LLVM_FALLTHROUGH;

lib/Sema/TypeChecker.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -524,14 +524,13 @@ void diagnoseRequirementFailure(
524524
const CheckGenericArgumentsResult::RequirementFailureInfo &reqFailureInfo,
525525
SourceLoc errorLoc, SourceLoc noteLoc, Type targetTy,
526526
ArrayRef<GenericTypeParamType *> genericParams,
527-
TypeSubstitutionFn substitutions, ModuleDecl *module);
527+
TypeSubstitutionFn substitutions);
528528

529529
/// Check the given generic parameter substitutions against the given
530530
/// requirements and report on any requirement failures in detail for
531531
/// diagnostic needs.
532532
CheckGenericArgumentsResult
533-
checkGenericArgumentsForDiagnostics(ModuleDecl *module,
534-
ArrayRef<Requirement> requirements,
533+
checkGenericArgumentsForDiagnostics(ArrayRef<Requirement> requirements,
535534
TypeSubstitutionFn substitutions);
536535

537536
/// Checks whether the generic requirements imposed on the nested type
@@ -575,8 +574,7 @@ checkGenericArgumentsForDiagnostics(ModuleDecl *module,
575574
///
576575
/// \returns \c true on success.
577576
bool checkContextualRequirements(GenericTypeDecl *decl, Type parentTy,
578-
SourceLoc loc, ModuleDecl *module,
579-
GenericSignature contextSig);
577+
SourceLoc loc, GenericSignature contextSig);
580578

581579
/// Add any implicitly-defined constructors required for the given
582580
/// struct, class or actor.

0 commit comments

Comments
 (0)