Detect custom type expressions that have no effect

This commit is contained in:
Mathias Baumann
2019-02-18 18:59:31 +01:00
parent ee9394b4aa
commit e3d4155fa8
5 changed files with 25 additions and 0 deletions
+5
View File
@@ -2316,8 +2316,13 @@ bool TypeChecker::visit(Identifier const& _identifier)
if (auto variableDeclaration = dynamic_cast<VariableDeclaration const*>(annotation.referencedDeclaration))
annotation.isPure = annotation.isConstant = variableDeclaration->isConstant();
else if (dynamic_cast<MagicVariableDeclaration const*>(annotation.referencedDeclaration))
{
if (dynamic_cast<FunctionType const*>(annotation.type.get()))
annotation.isPure = true;
}
else if (dynamic_cast<TypeType const*>(annotation.type.get()))
annotation.isPure = true;
// Check for deprecated function names.
// The check is done here for the case without an actual function call.