diff --git a/JavaTXcompiler-2.0-jar-with-dependencies.jar b/JavaTXcompiler-2.0-jar-with-dependencies.jar new file mode 100644 index 00000000..c46deaa0 Binary files /dev/null and b/JavaTXcompiler-2.0-jar-with-dependencies.jar differ diff --git a/JavaTXcompiler-2.1-jar-with-dependencies.jar b/JavaTXcompiler-2.1-jar-with-dependencies.jar new file mode 100644 index 00000000..a3dd495d Binary files /dev/null and b/JavaTXcompiler-2.1-jar-with-dependencies.jar differ diff --git a/JavaTXcompiler-2.2-jar-with-dependencies.jar b/JavaTXcompiler-2.2-jar-with-dependencies.jar new file mode 100644 index 00000000..4704705c Binary files /dev/null and b/JavaTXcompiler-2.2-jar-with-dependencies.jar differ diff --git a/compile.sh b/compile.sh index 6e10ada8..0706bf8f 100755 --- a/compile.sh +++ b/compile.sh @@ -3,7 +3,7 @@ SRCDIR="javatx-src/main/java" DESTDIR="out" JAVAC_FLAGS="-g:none -nowarn" -JAVATX_COMPILER_PATH="JavaTXcompiler-1.9-jar-with-dependencies.jar" +JAVATX_COMPILER_PATH="JavaTXcompiler-2.2-jar-with-dependencies.jar" #remove all files, if the script is called with parameter "clear" if [ "$1" = "clean" ]; then @@ -11,6 +11,11 @@ if [ "$1" = "clean" ]; then exit 0 fi +if [ "$1" != "" ]; then + echo "invalid argument: $1" + exit 1 +fi + #find all .java/.jav files recursively and store them in an array JAVA_FILES=($(find "$SRCDIR" -name "*.java")) JAV_FILES=($(find "$SRCDIR" -name "*.jav")) @@ -50,21 +55,26 @@ for file in "${JAV_FILES[@]}"; do fi done +# Not used because it is currently extremely slow/not working +#if [ "${#JAV_CHANGED[@]}" -ne 0 ]; then +# echo "java -jar $JAVATX_COMPILER_PATH -d $DESTDIR -cp "$SRCDIR:$DESTDIR:target/dependencies/" ${JAV_CHANGED[@]}" +# java -jar $JAVATX_COMPILER_PATH -d $DESTDIR -cp "$SRCDIR:$DESTDIR:target/dependencies/" "${JAV_CHANGED[@]}" +#fi if [ "${#JAV_CHANGED[@]}" -ne 0 ]; then for ((i = 0; i < "${#JAV_CHANGED[@]}"; i++)); do - echo "java -jar $JAVATX_COMPILER_PATH -d "${JAV_CLASSES[i]%/*}" -cp "$SRCDIR:$DESTDIR:target/dependencies/" ${JAV_CHANGED[i]}" - java -jar $JAVATX_COMPILER_PATH -d "${JAV_CLASSES[i]%/*}" -cp "$SRCDIR:$DESTDIR:target/dependencies/" "${JAV_CHANGED[i]}" + echo "java -jar $JAVATX_COMPILER_PATH -d "$DESTDIR" -cp "$SRCDIR:$DESTDIR:target/dependencies/" ${JAV_CHANGED[i]}" + java -jar $JAVATX_COMPILER_PATH -d "$DESTDIR" -cp "$SRCDIR:$DESTDIR:target/dependencies/" "${JAV_CHANGED[i]}" if [ $? -eq 1 ]; then exit 1; fi done fi -if [ "${#JAVA_CHANGED[@]}" -ne 0 ]; then - echo "javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:target/dependencies/*" $JAVAC_FLAGS ${JAVA_CHANGED[@]}" - javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:target/dependencies/*" $JAVAC_FLAGS "${JAVA_CHANGED[@]}" -fi +#if [ "${#JAVA_CHANGED[@]}" -ne 0 ]; then +# echo "javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:target/dependencies/*" $JAVAC_FLAGS ${JAVA_CHANGED[@]}" +# javac -d $DESTDIR -cp "$SRCDIR:$DESTDIR:target/dependencies/*" $JAVAC_FLAGS "${JAVA_CHANGED[@]}" +#fi diff --git a/javatx-src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java b/javatx-src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java index 8d1181d2..5faf98ef 100644 --- a/javatx-src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java +++ b/javatx-src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java @@ -152,6 +152,7 @@ public class ClassOrInterface extends SyntaxTreeNode implements TypeScope { return new RefType(name, params, offset); } + /** * * @return die aktuelle Klasse als RefType diff --git a/javatx-src/main/java/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.jav b/javatx-src/main/java/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.jav index 8076742b..99310871 100644 --- a/javatx-src/main/java/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.jav +++ b/javatx-src/main/java/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.jav @@ -39,25 +39,25 @@ public class MethodAssumption extends Assumption{ } */ - public ClassOrInterface getReceiver(){ + public getReceiver(){ return receiver; } - public RefTypeOrTPHOrWildcardOrGeneric getReturnType() { + public getReturnType() { return retType; } - public List getArgTypes(){ + public getArgTypes(){ return params; } - public RefTypeOrTPHOrWildcardOrGeneric getReturnType(GenericsResolver resolver) { + public getReturnType(resolver) { return resolver.resolve(retType); } - public List getArgTypes(GenericsResolver resolver) { + public getArgTypes(resolver) { List ret = new ArrayList<>(); - for(RefTypeOrTPHOrWildcardOrGeneric param : params){ + for(param : params){ param = resolver.resolve(param); ret.add(param); } @@ -69,14 +69,15 @@ public class MethodAssumption extends Assumption{ * @param resolver * @return */ - public RefTypeOrTPHOrWildcardOrGeneric getReceiverType(GenericsResolver resolver) { + public getReceiverType(resolver) { if (receiver == null) return null; List params = new ArrayList<>(); - for(GenericTypeVar gtv : receiver.getGenerics()){ + for(gtv : receiver.getGenerics()){ //Die Generics werden alle zu TPHs umgewandelt. params.add(resolver.resolve(new GenericRefType(gtv.getName(), new NullToken()))); } RefTypeOrTPHOrWildcardOrGeneric receiverType; + if(receiver instanceof FunNClass){ receiverType = new RefType(new JavaClassName(receiver.getClassName().toString()+"$$"), params, new NullToken()); // new FunN(params); }else{ @@ -86,7 +87,7 @@ public class MethodAssumption extends Assumption{ return receiverType; } - public Boolean isInherited() { + public isInherited() { return isInherited; } }