returnvformat(R"(The local variable "%s" is declared but never used in the block. If this is intended, prefix it with an underscore: "_%s".)", symbols[0], symbols[0]);
returnvformat(R"(The local constant "%s" is declared but never used in the block. If this is intended, prefix it with an underscore: "_%s".)", symbols[0], symbols[0]);
caseUNUSED_PRIVATE_CLASS_VARIABLE:
CHECK_SYMBOLS(1);
returnvformat(R"(The class variable "%s" is declared but never used in the script.)", symbols[0]);
caseUNUSED_PARAMETER:
CHECK_SYMBOLS(2);
returnvformat(R"*(The parameter "%s" is never used in the function "%s()". If this is intended, prefix it with an underscore: "_%s".)*",symbols[1],symbols[0],symbols[1]);
caseUNUSED_SIGNAL:
CHECK_SYMBOLS(1);
returnvformat(R"(The signal "%s" is declared but never emitted.)", symbols[0]);
returnvformat(R"(The %s "%s" has the same name as a %s.)", symbols[0], symbols[1], symbols[2]);
caseUNREACHABLE_CODE:
CHECK_SYMBOLS(1);
returnvformat(R"*(Unreachable code (statement after return)infunction"%s()".)*", symbols[0]);
caseUNREACHABLE_PATTERN:
return"Unreachable pattern (pattern after wildcard or bind).";
caseSTANDALONE_EXPRESSION:
return"Standalone expression (the line has no effect).";
caseSTANDALONE_TERNARY:
return"Standalone ternary conditional operator: the return value is being discarded.";
caseINCOMPATIBLE_TERNARY:
return"Values of the ternary conditional are not mutually compatible.";
casePROPERTY_USED_AS_FUNCTION:
CHECK_SYMBOLS(2);
returnvformat(R"*(The method "%s()" was not found in base "%s" but there's a property with the same name. Did you mean to access it?)*",symbols[0],symbols[1]);
caseCONSTANT_USED_AS_FUNCTION:
CHECK_SYMBOLS(2);
returnvformat(R"*(The method "%s()" was not found in base "%s" but there's a constant with the same name. Did you mean to access it?)*",symbols[0],symbols[1]);
caseFUNCTION_USED_AS_PROPERTY:
CHECK_SYMBOLS(2);
returnvformat(R"(The property "%s" was not found in base "%s" but there's a method with the same name. Did you mean to call it?)", symbols[0], symbols[1]);
returnvformat(R"*(The argument %s of the %s "%s()" requires the subtype "%s" but the supertype "%s" was provided.)*",symbols[0],symbols[1],symbols[2],symbols[3],symbols[4]);
returnvformat(R"*(The method "%s()" returns "void" but it's trying to return a call to "%s()" that can't be ensured to also be "void".)*",symbols[0],symbols[1]);
caseRETURN_VALUE_DISCARDED:
CHECK_SYMBOLS(1);
returnvformat(R"*(The function "%s()" returns a value that will be discarded if not used.)*",symbols[0]);
caseSTATIC_CALLED_ON_INSTANCE:
CHECK_SYMBOLS(2);
returnvformat(R"*(The function "%s()" is a static function but was called from an instance. Instead, it should be directly called from the type: "%s.%s()".)*",symbols[0],symbols[1],symbols[0]);
caseREDUNDANT_STATIC_UNLOAD:
returnR"(The "@static_unload" annotation is redundant because the file does not have a class with static variables.)";
caseREDUNDANT_AWAIT:
returnR"("await" keyword not needed in this case, because the expression isn't a coroutine nor a signal.)";
caseASSERT_ALWAYS_TRUE:
return"Assert statement is redundant because the expression is always true.";
caseASSERT_ALWAYS_FALSE:
return"Assert statement will raise an error because the expression is always false.";
caseINTEGER_DIVISION:
return"Integer division, decimal part will be discarded.";
caseNARROWING_CONVERSION:
return"Narrowing conversion (float is converted to int and loses precision).";
returnvformat(R"*(The method "%s()" overrides a method from native class "%s". This won't be called by the engine and may not work as expected.)*",symbols[0],symbols[1]);
returnvformat(R"*(The default value is using "%s" which won't return nodes in the scene tree before "_ready()" is called. Use the "@onready" annotation to solve this.)*",symbols[0]);