@@ -4283,6 +4283,8 @@ VarDeclUsageChecker::~VarDeclUsageChecker() {
42834283 if (isUsedInInactive (var))
42844284 continue ;
42854285
4286+ bool isWeak = var->getInterfaceType ()->is <WeakStorageType>();
4287+
42864288 // If this is a parameter explicitly marked 'var', remove it.
42874289 if (FixItLoc.isInvalid ()) {
42884290 bool suggestCaseLet = false ;
@@ -4293,10 +4295,14 @@ VarDeclUsageChecker::~VarDeclUsageChecker() {
42934295 suggestCaseLet = isa<ForEachStmt>(stmt);
42944296 }
42954297 if (suggestCaseLet)
4296- Diags.diagnose (var->getLoc (), diag::variable_tuple_elt_never_mutated,
4298+ Diags.diagnose (var->getLoc (),
4299+ isWeak ? diag::weak_variable_tuple_elt_never_mutated
4300+ : diag::variable_tuple_elt_never_mutated,
42974301 var->getName (), var->getNameStr ());
42984302 else
4299- Diags.diagnose (var->getLoc (), diag::variable_never_mutated,
4303+ Diags.diagnose (var->getLoc (),
4304+ isWeak ? diag::weak_variable_never_mutated
4305+ : diag::variable_never_mutated,
43004306 var->getName (), true );
43014307
43024308 }
@@ -4309,7 +4315,9 @@ VarDeclUsageChecker::~VarDeclUsageChecker() {
43094315 suggestLet = !isa<ForEachStmt>(stmt);
43104316 }
43114317
4312- auto diag = Diags.diagnose (var->getLoc (), diag::variable_never_mutated,
4318+ auto diag = Diags.diagnose (var->getLoc (),
4319+ isWeak ? diag::weak_variable_never_mutated
4320+ : diag::variable_never_mutated,
43134321 var->getName (), suggestLet);
43144322
43154323 if (suggestLet)
0 commit comments