#!/usr/bin/env bash # Compiles each file in src/broken/ (they are NOT part of the Maven build) and captures javac's own message. set -uo pipefail cd "$(dirname "$0")/../src/broken" out=../../output/07-compile-errors.txt : > "$out" for f in FinalOverride CheckedNotHandled LossyCast MissingReturnAndUnreachable; do echo "=== javac $f.java ===" >> "$out" javac --release 25 -d /tmp/fresher-broken "$f.java" 2>&1 | grep -v '^Picked up JAVA_TOOL_OPTIONS' >> "$out" echo >> "$out" done # The same file under both language levels: an error before Java 25, fine from Java 25 (JEP 513). for rel in 21 25; do echo "=== javac --release $rel PreSuper.java ===" >> "$out" if javac --release "$rel" -d /tmp/fresher-broken "PreSuper.java" 2>&1 | grep -v '^Picked up JAVA_TOOL_OPTIONS' >> "$out"; [ "${PIPESTATUS[0]}" -eq 0 ]; then echo "compiled without errors" >> "$out" fi echo >> "$out" done cat "$out"