diff --git a/src/main/java/org/perlonjava/backend/jvm/EmitVariable.java b/src/main/java/org/perlonjava/backend/jvm/EmitVariable.java index c484a205b..f0e4c5a52 100644 --- a/src/main/java/org/perlonjava/backend/jvm/EmitVariable.java +++ b/src/main/java/org/perlonjava/backend/jvm/EmitVariable.java @@ -1096,11 +1096,12 @@ static void handleMyOperator(EmitterVisitor emitterVisitor, OperatorNode node) { if (CompilerOptions.DEBUG_ENABLED) emitterVisitor.ctx.logDebug("MY " + operator + " " + sigil + name); if (emitterVisitor.ctx.symbolTable.getVariableIndexInCurrentScope(var) != -1) { if (Warnings.warningManager.isWarningEnabled("redefine")) { + String message = operator.equals("our") + ? "\"" + operator + "\" variable " + var + " redeclared" + : "\"" + operator + "\" variable " + var + " masks earlier declaration in same scope"; System.err.println( emitterVisitor.ctx.errorUtil.errorMessage(node.getIndex(), - "Warning: \"" + operator + "\" variable " - + var - + " masks earlier declaration in same ctx.symbolTable")); + message)); } } int varIndex = emitterVisitor.ctx.symbolTable.addVariable(var, operator, sigilNode); diff --git a/src/main/java/org/perlonjava/frontend/parser/OperatorParser.java b/src/main/java/org/perlonjava/frontend/parser/OperatorParser.java index ce48e6ec6..ad8e9c69a 100644 --- a/src/main/java/org/perlonjava/frontend/parser/OperatorParser.java +++ b/src/main/java/org/perlonjava/frontend/parser/OperatorParser.java @@ -234,11 +234,11 @@ private static void addVariableToScope(EmitterContext ctx, String operator, Oper String name = ((IdentifierNode) identifierNode).name; String var = sigil + name; if (ctx.symbolTable.getVariableIndexInCurrentScope(var) != -1) { + String message = operator.equals("our") + ? "\"" + operator + "\" variable " + var + " redeclared" + : "\"" + operator + "\" variable " + var + " masks earlier declaration in same scope"; System.err.println( - ctx.errorUtil.errorMessage(node.getIndex(), - "Warning: \"" + operator + "\" variable " - + var - + " masks earlier declaration in same ctx.symbolTable")); + ctx.errorUtil.errorMessage(node.getIndex(), message)); } int varIndex = ctx.symbolTable.addVariable(var, operator, node); // Note: the isDeclaredReference flag is stored in node.annotations