├── .classpath ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .project ├── .settings └── org.eclipse.jdt.core.prefs ├── LICENSE ├── README.md ├── jitpack.yml ├── pom.xml └── src ├── main └── java │ ├── com.github.forax.exotic │ ├── ConstantMemoizer.java │ ├── MostlyConstant.java │ ├── ObjectSupport.java │ ├── ObjectSupportLambdas.java │ ├── ObjectSupports.java │ ├── StableField.java │ ├── StringSwitch.java │ ├── StringSwitchCallSite.java │ ├── StructuralCall.java │ ├── StructuralCallImpl.java │ ├── Thrower.java │ ├── TypeSwitch.java │ ├── TypeSwitchCallSite.java │ ├── Visitor.java │ └── VisitorCallSite.java │ └── module-info.java └── test └── java ├── com.github.forax.exotic ├── ConstantMemoizerExampleTests.java ├── ConstantMemoizerTests.java ├── MostlyConstantExampleTests.java ├── MostlyConstantTests.java ├── ObjectSupportExampleTests.java ├── ObjectSupportTests.java ├── StableFieldExample2Tests.java ├── StableFieldExampleTests.java ├── StableFieldTests.java ├── StringSwitchExampleTests.java ├── StringSwitchTests.java ├── StructuralCallExample2Tests.java ├── StructuralCallExampleTests.java ├── StructuralCallTests.java ├── TypeSwitchExampleTests.java ├── TypeSwitchTests.java ├── VisitorTests.java └── perf │ ├── ConstantAccessBenchMark.java │ ├── FieldAccessBenchMark.java │ ├── MethodCallBenchMark.java │ ├── ObjectSupportBenchMark.java │ ├── StringSwitchBenchMark.java │ ├── TypeSwitchBenchMark.java │ └── VisitorBenchMark.java └── com └── github └── forax └── exotic └── noaccess └── NoAccess.java /.classpath: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/.classpath -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/.gitignore -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/.project -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/.settings/org.eclipse.jdt.core.prefs -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/README.md -------------------------------------------------------------------------------- /jitpack.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/jitpack.yml -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/ConstantMemoizer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/ConstantMemoizer.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/MostlyConstant.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/MostlyConstant.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/ObjectSupport.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/ObjectSupport.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/ObjectSupportLambdas.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/ObjectSupportLambdas.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/ObjectSupports.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/ObjectSupports.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/StableField.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/StableField.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/StringSwitch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/StringSwitch.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/StringSwitchCallSite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/StringSwitchCallSite.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/StructuralCall.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/StructuralCall.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/StructuralCallImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/StructuralCallImpl.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/Thrower.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/Thrower.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/TypeSwitch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/TypeSwitch.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/TypeSwitchCallSite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/TypeSwitchCallSite.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/Visitor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/Visitor.java -------------------------------------------------------------------------------- /src/main/java/com.github.forax.exotic/VisitorCallSite.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/com.github.forax.exotic/VisitorCallSite.java -------------------------------------------------------------------------------- /src/main/java/module-info.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/main/java/module-info.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/ConstantMemoizerExampleTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/ConstantMemoizerExampleTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/ConstantMemoizerTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/ConstantMemoizerTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/MostlyConstantExampleTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/MostlyConstantExampleTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/MostlyConstantTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/MostlyConstantTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/ObjectSupportExampleTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/ObjectSupportExampleTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/ObjectSupportTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/ObjectSupportTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StableFieldExample2Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StableFieldExample2Tests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StableFieldExampleTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StableFieldExampleTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StableFieldTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StableFieldTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StringSwitchExampleTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StringSwitchExampleTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StringSwitchTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StringSwitchTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StructuralCallExample2Tests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StructuralCallExample2Tests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StructuralCallExampleTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StructuralCallExampleTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/StructuralCallTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/StructuralCallTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/TypeSwitchExampleTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/TypeSwitchExampleTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/TypeSwitchTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/TypeSwitchTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/VisitorTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/VisitorTests.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/perf/ConstantAccessBenchMark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/perf/ConstantAccessBenchMark.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/perf/FieldAccessBenchMark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/perf/FieldAccessBenchMark.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/perf/MethodCallBenchMark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/perf/MethodCallBenchMark.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/perf/ObjectSupportBenchMark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/perf/ObjectSupportBenchMark.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/perf/StringSwitchBenchMark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/perf/StringSwitchBenchMark.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/perf/TypeSwitchBenchMark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/perf/TypeSwitchBenchMark.java -------------------------------------------------------------------------------- /src/test/java/com.github.forax.exotic/perf/VisitorBenchMark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com.github.forax.exotic/perf/VisitorBenchMark.java -------------------------------------------------------------------------------- /src/test/java/com/github/forax/exotic/noaccess/NoAccess.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forax/exotic/HEAD/src/test/java/com/github/forax/exotic/noaccess/NoAccess.java --------------------------------------------------------------------------------