kindlich
fb280d54ed
CheckCast after MapGet if not primitive
Required for Type assertion, else a 'Object is not assignable to X' will follow
4 jaren geleden
kindlich
d04d5d57b6
JavaCompiler: Fix class names
4 jaren geleden
kindlich
66ec3e003b
Box Map keys when indexGetting
4 jaren geleden
kindlich
5cba6fc7b0
Checkcast may not work that well with primitives ^^'
4 jaren geleden
kindlich
c984531cc3
More work on generics
This time for nonexpansions.
The method signatures should be calculated correctly now, though they are still only filled with nulls
4 jaren geleden
kindlich
1a3075532c
WIP: More work on Generics in Expansions
4 jaren geleden
kindlich
8f1960209a
WIP: More work on generic parameters in expansions
4 jaren geleden
kindlich
45029d5e80
Fixed compilation with generic arguments
5 jaren geleden
Jared
1895fed5e5
update ASM to latest
5 jaren geleden
kindlich
48ccb11add
Output now creates missing folders
5 jaren geleden
kindlich
c4acf675e8
[WIP] Duplicate class names, pt. II
Fixed functions not working properly
5 jaren geleden
kindlich
6d51a81766
Fixed LocalVariableGet calls when inside a lambda
5 jaren geleden
kindlich
659dd13020
Fixed NPE if a return statement without expression was used
5 jaren geleden
kindlich
f9d96e18de
Fixed using signature instead of description when checking if a bridge methos is necessary
5 jaren geleden
kindlich
bf1ecfacd3
Fixed NPE in ScriptingExample due to nonpushing visitor not loaded
5 jaren geleden
kindlich
1d49da3a9c
Fixed incorrect method signature on lambda methods
They used the signature instead of the description, so there was an AIOOB when the compiler tried to cast a 'TT;' as that only exists in signatures, not in descriptions
5 jaren geleden
kindlich
9bd9528c43
Removed debug .class file dumps
5 jaren geleden
kindlich
20f966f47e
[WIP] Duplicated Class names
This commit at least fixes that some classes have the same name, e.g. the name of an expansion class and the name of the script block part within the file.
WIP since it still needs more doing and a way to properly store already generated names.
5 jaren geleden
kindlich
d4a722cd92
Fixed this call in primitive expansions
Who would've thought that a 'this' can be a non-object :thinking-face:
5 jaren geleden
kindlich
6ada4ffce1
Replaced hardcoded IntRange class name
Reason: Some iterators use the generated USizeRange which would throw a ClassCastException
5 jaren geleden
kindlich
d2fdb13730
Fix expansion method signature and call
Signature: Include the type in the signature if it is an expansion method
Call: Call invokeStatic if its an expansion method
5 jaren geleden
kindlich
341f8c23f5
Jdk classes no longer 'created', stopped 2nd registration of empty classes
- Apparently, ZC tried to create (empty) java.lang and java.util classes
- Script blocks and Module Highleveldefinitions create the same class and they aren't merged but the scripts blocks (which run later) try to replace the definitions. Workaround by preventing 2nd registrations and printing to System.err
5 jaren geleden
Jared
aaca0261f1
Removed some unneeded static fields
5 jaren geleden
kindlich
fb3382704d
Skip non-linear interface implementations for Native classes
Fixes an issue where Std::List would implement Iterable and therefore break the scripts.
5 jaren geleden
kindlich
4a5b508fbe
Pop method return type if ZC thinks a nonvoid method returns a void value
5 jaren geleden
Jared
82257b2a71
Made the bytecode run unit throw errors instead of eating them
5 jaren geleden
kindlich
94128e728d
Fixed Optional primitive casts -> String
Now instead uses Objects.toString(...) for them
5 jaren geleden
kindlich
8f71b442fc
Added unboxingTypeVisitor and fixed primitives in Iterators
5 jaren geleden
kindlich
07d6866fb2
Fixed Bridge methods IncompatibleClassChangeError
Reason was that it tried to invokeInterface whereas a bridge redirects to a local (virtual) method.
The local method was flagged incorrectly as the same type as the bridger which would be interface, hence the error
5 jaren geleden
kindlich
3fd8e37ec9
WIP: Rudimentary work on VarAargs
5 jaren geleden
kindlich
3bf515d8e8
Implemented SuperTypeCast for ExpressionVisitor
5 jaren geleden
Jared
e7bcbcffaf
Fix maps not working
5 jaren geleden
kindlich
e614149c8c
Moved Array default value to default value expression
5 jaren geleden
kindlich
96b6386d79
JavaCompiler: Use LinkedHashMap to preserve execution order
5 jaren geleden
kindlich
f6516d5246
Set file and line meta info
5 jaren geleden
kindlich
8dc22bcfeb
Java Bytecode Array Constructor: Implemented projection with indices
5 jaren geleden
kindlich
6f95dd3ff9
Java Bytecode Array Constructor: Finished Projection function invocation
5 jaren geleden
kindlich
d062ad0149
Fixed Bridge methods invoking in the incorrect class
5 jaren geleden
kindlich
9494ef212e
Functional Wrappers, Bridge Methods, Type descriptor fix
Functional interface wrappers should work now
Implementing a method with a signature differing from the actual one (e.g. when dealing with generics) now creates a proper bridge method
The Java Bytecde compiler used an incorrect method in checkCast
We now no longer use hardcoded 'accept's as method names but whatever the context tells us to.
5 jaren geleden
kindlich
b8be41d1a2
Formatted Functional Interface Wrapper creations
5 jaren geleden
Stan Hebben
e909486bf3
Added utility method to retrieve the functional interface method from a type.
6 jaren geleden
kindlich
da4c6eb005
WIP Functional Wrapper
Currently only supports 'accepts' methods, until we can get a way to get the actual method signature/name from the class
6 jaren geleden
kindlich
476e1b350a
Functional Interfaces Bytecode Step I
Directly using the lambda where the functional interface is requested works.
The lambda class will then directly implement the functionalInterface and not use a wrapper class
6 jaren geleden
Stan Hebben
aab7cc69f1
- Continued implementation of interfaces in the bytecode compiler.
- Added support to have a native method both as operator and named method
6 jaren geleden
kindlich
d0e5b835c0
Now correctly check against Interface methods
6 jaren geleden
kindlich
f66a072428
Fix classloader call to super instead of parent
6 jaren geleden
kindlich
dfbc769f02
Added missing break statements to ASSOC_EQUALS
6 jaren geleden
kindlich
222c198437
Revert 4d5fc47bcb
6 jaren geleden
kindlich
4d5fc47bcb
Diry hack to use findLoadedClass on the parent loader
Lokking at you ForgeModLoader that needs to reinitialize about every class it comes across
6 jaren geleden
kindlich
bfb0a33b27
Added classLoader parameter to JavaBytecodeRunUnit#run
6 jaren geleden