Adrian Kunz
Adrian Kunz
Update the build process and code base to Java 9. Includes modules, updates to classes that use proprietary packages, private interface methods and others.
Modularize the Dyvil Codebase using the Java 9 module system.
Overhaul the Cast and Type Conversion system. Casts should be resolved using overloaded method resolution. Any and all type conversions except upcasts should be performed via AST transformations.
Move and rename `dyvil.collection` classes: - `d.c.ImmutableX` -> `d.c.immutable.X` - `d.c.MutableX` -> `d.c.mutable.X`
Add the ability to disambiguate method calls based on the return type. **_Examples**_: ``` swift // Principle: func f(int i): int = i func f(int i): String = i.toString var...
The following compiler phases can theoretically work in parallel: - Tokenize - (Parse) (currently not, because it adds classes to packages) - (Check) (currently not for unknown reasons, but could...
Add support for `struct`s. Structs are special classes that do not have reference properties. They cannot be tested for reference equality and cannot be used as synchronization locks. **_Example**_: ```...
The compiler should analyse if and how often fields are initialized in constructors.
Add support for generic type members. ***Example***: ```swift class Foo { type E // type "field" type M = Map // type "method" static type Str = String } //...