From 46c790716551bb000f851962bdff830f22910c82 Mon Sep 17 00:00:00 2001 From: Antoine Viallon Date: Thu, 11 Jan 2024 00:06:06 +0100 Subject: [PATCH] nodes: make some obvious dead-code raise a log message (Info) --- compiler/nodes.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/compiler/nodes.py b/compiler/nodes.py index 570c969..dd607a3 100644 --- a/compiler/nodes.py +++ b/compiler/nodes.py @@ -5,7 +5,7 @@ from abc import abstractmethod, ABC from typing import Any, Iterable from . import ir, semantic, lexer -from .errors import SemanticAnalysisError, OverrideMandatoryError +from .errors import SemanticAnalysisError, OverrideMandatoryError, CompilationWarning, Levels from .logger import Logger from .source import SourceLocation from .typechecking import typecheck @@ -291,8 +291,13 @@ class Block(Statement): def intermediate_representation(self) -> list[ir.IRItem]: result: list[ir.IRItem] = [] for node in self.nodes: - if not node.pure: - result += node.intermediate_representation() + if node.pure: + CompilationWarning(node.location(), + f"{node.__class__.__name__} ignored as it doesn't have any " + f"visible side effect.", + level=Levels.Info).raise_warning() + continue + result += node.intermediate_representation() return result def semantic_analysis(self, context: semantic.Context | None):