Skip to content

Fix type checking and codegen bugs, add Docker and test suite - #1

Merged
angelosSfyr merged 1 commit into
mainfrom
refactoring
Sep 23, 2026
Merged

angelosSfyr merged 1 commit into
mainfrom
refactoring

Conversation

@angelosSfyr

Copy link
Copy Markdown
Owner

Type checking:

  • Reject duplicate classes, fields, methods, parameters and local variables
  • Allow returning a subclass of the declared return type
  • Check local variable and field types, println arguments and integer literal range
  • Report undefined identifiers and use of main's argument instead of crashing
  • Compare strings with equals() instead of ==

Code generation:

  • Support boolean array allocation and convert boolean elements to/from i32
  • Emit a vtable for the main class; main no longer takes a vtable slot

Main exits with status 1 on errors and only writes the .ll file after type checking.

Add a Dockerfile, run_tests.sh (compares compiled programs against javac/java), a GitHub Actions workflow, and an updated README.

Type checking:
- Reject duplicate classes, fields, methods, parameters and local variables
- Allow returning a subclass of the declared return type
- Check local variable and field types, println arguments and integer literal range
- Report undefined identifiers and use of main's argument instead of crashing
- Compare strings with equals() instead of ==

Code generation:
- Support boolean array allocation and convert boolean elements to/from i32
- Emit a vtable for the main class; main no longer takes a vtable slot

Main exits with status 1 on errors and only writes the .ll file after type checking.

Add a Dockerfile, run_tests.sh (compares compiled programs against javac/java),
a GitHub Actions workflow, and an updated README.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@angelosSfyr
angelosSfyr merged commit 8628158 into main Sep 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant