Skip to content
This repository has been archived by the owner on Nov 29, 2022. It is now read-only.
forked from nnym/uncheck

Disables exception checking in javac and IntelliJ IDEA. Stop trying today.

License

Notifications You must be signed in to change notification settings

stardust-enterprises/uncheck

 
 

Repository files navigation

This project comprises a Java compiler plugin and an IntelliJ plugin. The former modifies javac and the latter fixes the IDE's error reporting.

Features

  • No exception checking,
  • no restriction on the first statement of a constructor and
  • reassigned variable usage in lambdas and inner classes.

Example

Together these plugins enable code like

class Example {
    final String a, b;

    Example(String a, String b) {
        this.a = a = "not effectively final";
        this.b = b;
        Runnable r = () -> System.out.println(a);
    }

    Example(String s) {
        var ab = s.split(":");
        this(ab[0], ab[1]);
    }

    void evilMethod() {
        Files.writeString(Path.of("file.txt"), "text");
        throw new IOException();
    }
}

to be compiled successfully.

Using the IntelliJ plugin

Download and install manually.

Using the compiler plugin

It currently requires Java 17 or later and is hosted as net.auoeke:uncheck at https://maven.auoeke.net.

Gradle

repositories {
    maven {url = "https://maven.auoeke.net"}
}

dependencies {
    annotationProcessor("net.auoeke:uncheck:latest.release")
}

About

Disables exception checking in javac and IntelliJ IDEA. Stop trying today.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%