From 56d919f446216cd19ec8a5c55d9adf50d474a3af Mon Sep 17 00:00:00 2001
From: Fayez Abu Alia <fayez@Fayezs-MacBook-Pro.local>
Date: Wed, 31 Jan 2018 15:55:02 +0100
Subject: [PATCH] bug fix

---
 src/de/dhbwstuttgart/bytecode/BytecodeGen.java            | 2 +-
 src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java      | 6 +++---
 .../bytecode/descriptor/DescriptorToString.java           | 8 +++++---
 .../dhbwstuttgart/bytecode/signature/TypeToSignature.java | 4 ++--
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/de/dhbwstuttgart/bytecode/BytecodeGen.java b/src/de/dhbwstuttgart/bytecode/BytecodeGen.java
index d4fee65f0..8aa4c9e24 100644
--- a/src/de/dhbwstuttgart/bytecode/BytecodeGen.java
+++ b/src/de/dhbwstuttgart/bytecode/BytecodeGen.java
@@ -181,7 +181,7 @@ public class BytecodeGen implements ASTVisitor {
 			Signature signature = new Signature(method, genericsAndBoundsMethod, methodParamsAndTypes,resultSet);
 			sig = signature.toString();
 		}
-		
+		System.out.println(sig);
 		NormalMethod meth = new NormalMethod(method,genericsAndBounds,genericsAndBoundsMethod,hasGen);
 		methDesc = meth.accept(new DescriptorToString(resultSet));
 		MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC+acc, method.getName(), methDesc, sig, null);
diff --git a/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java b/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java
index 65834125b..b2c383976 100644
--- a/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java
+++ b/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java
@@ -31,6 +31,7 @@ import de.dhbwstuttgart.parser.SyntaxTreeGenerator.AssignToLocal;
 import de.dhbwstuttgart.syntaxtree.FormalParameter;
 import de.dhbwstuttgart.syntaxtree.Method;
 import de.dhbwstuttgart.syntaxtree.StatementVisitor;
+import de.dhbwstuttgart.syntaxtree.statement.literal.BoolLiteral;
 import de.dhbwstuttgart.syntaxtree.statement.literal.Literal;
 import de.dhbwstuttgart.syntaxtree.statement.literal.Null;
 import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
@@ -420,8 +421,8 @@ public class BytecodeGenMethod implements StatementVisitor{
 
 	@Override
 	public void visit(WhileStmt whileStmt) {
-		// TODO Auto-generated method stub
-		
+		whileStmt.expr.accept(this);
+		whileStmt.loopBlock.accept(this);
 	}
 
 	@Override
@@ -437,7 +438,6 @@ public class BytecodeGenMethod implements StatementVisitor{
 
 	@Override
 	public void visit(Literal literal) {
-		// value?
 		mv.visitLdcInsn(getResolvedType(literal.getType()));
 	}
 
diff --git a/src/de/dhbwstuttgart/bytecode/descriptor/DescriptorToString.java b/src/de/dhbwstuttgart/bytecode/descriptor/DescriptorToString.java
index c7c623b6f..c9725a828 100644
--- a/src/de/dhbwstuttgart/bytecode/descriptor/DescriptorToString.java
+++ b/src/de/dhbwstuttgart/bytecode/descriptor/DescriptorToString.java
@@ -48,9 +48,11 @@ public class DescriptorToString implements DescriptorVisitor{
 				}else {
 					desc += "L"+resultSet.resolveType(fp.getType()).resolvedType.acceptTV(new TypeToDescriptor())+ ";";
 				}
-			}else if(((RefType) fp.getType()).getParaList().size() > 0){
-				desc += "L"+resultSet.resolveType(fp.getType()).resolvedType.toString().replace(".", "%").replace("<", "%%").replace(">", "%%")+ ";";
-			}else {
+			}
+//			else if(((RefType) fp.getType()).getParaList().size() > 0){
+//				desc += "L"+resultSet.resolveType(fp.getType()).resolvedType.toString().replace(".", "%").replace("<", "%%").replace(">", "%%")+ ";";
+//			}
+			else {
 				desc += "L"+resultSet.resolveType(fp.getType()).resolvedType.acceptTV(new TypeToDescriptor())+ ";";
 			}
 		}
diff --git a/src/de/dhbwstuttgart/bytecode/signature/TypeToSignature.java b/src/de/dhbwstuttgart/bytecode/signature/TypeToSignature.java
index bbc19c371..78b2fb22a 100644
--- a/src/de/dhbwstuttgart/bytecode/signature/TypeToSignature.java
+++ b/src/de/dhbwstuttgart/bytecode/signature/TypeToSignature.java
@@ -25,9 +25,9 @@ public class TypeToSignature implements TypeVisitor<String> {
                 params += "L"+param.toString().replace(".", "/");
                 if(it.hasNext())params += ";";
             }
-            params += ";>;";
+            params += ";>";
         }
-        return refType.getName().toString().replace(".", "/") + params;
+        return refType.getName().toString().replace(".", "/") + params+";";
 	}
 
 	@Override