@@ -1241,19 +1241,20 @@ namespace {
1241
1241
if (auto *VD = dyn_cast<VarDecl>(E->getDecl ())) {
1242
1242
knownType = CS.getTypeIfAvailable (VD);
1243
1243
if (!knownType)
1244
- knownType = VD-> getType ( );
1244
+ knownType = CS. getVarType (VD );
1245
1245
1246
1246
if (knownType) {
1247
- assert (!knownType->isHole ());
1248
1247
// If the known type has an error, bail out.
1249
1248
if (knownType->hasError ()) {
1250
1249
if (!CS.hasType (E))
1251
1250
CS.setType (E, knownType);
1252
1251
return nullptr ;
1253
1252
}
1254
1253
1255
- // Set the favored type for this expression to the known type.
1256
- CS.setFavoredType (E, knownType.getPointer ());
1254
+ if (!knownType->hasHole ()) {
1255
+ // Set the favored type for this expression to the known type.
1256
+ CS.setFavoredType (E, knownType.getPointer ());
1257
+ }
1257
1258
}
1258
1259
1259
1260
// This can only happen when failure diagnostics is trying
@@ -2016,7 +2017,7 @@ namespace {
2016
2017
2017
2018
Type externalType;
2018
2019
if (param->getTypeRepr ()) {
2019
- auto declaredTy = param-> getType ( );
2020
+ auto declaredTy = CS. getVarType (param );
2020
2021
externalType = CS.openUnboundGenericTypes (declaredTy, paramLoc);
2021
2022
} else {
2022
2023
// Let's allow parameters which haven't been explicitly typed
@@ -3884,7 +3885,7 @@ bool ConstraintSystem::generateConstraints(
3884
3885
getConstraintLocator (typeRepr));
3885
3886
setType (typeRepr, backingType);
3886
3887
3887
- auto propertyType = wrappedVar-> getType ( );
3888
+ auto propertyType = getVarType (wrappedVar );
3888
3889
if (propertyType->hasError ())
3889
3890
return true ;
3890
3891
0 commit comments