From a31e7b11082d5527e8a4098617cecfcc587f91a9 Mon Sep 17 00:00:00 2001 From: JanUlrich Date: Thu, 28 Apr 2016 15:32:12 +0200 Subject: [PATCH] BCEL Framework aktualisiert. FunN Typen implementieren --- lib/commons-bcel6-6.0-SNAPSHOT.jar | Bin 687884 -> 690312 bytes .../bytecode/MethodGenerator.java | 2 +- .../statement/LambdaExpression.java | 33 +++--------------- 3 files changed, 5 insertions(+), 30 deletions(-) diff --git a/lib/commons-bcel6-6.0-SNAPSHOT.jar b/lib/commons-bcel6-6.0-SNAPSHOT.jar index 11dcfef952c96f29f7af759a67a2861cc8b6e8f2..d84ca41f5bd28147a9a57a5898bed88d1037bbe1 100644 GIT binary patch delta 34922 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 delta 33293 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 diff --git a/src/de/dhbwstuttgart/bytecode/MethodGenerator.java b/src/de/dhbwstuttgart/bytecode/MethodGenerator.java index 887766ce..d374f3f6 100644 --- a/src/de/dhbwstuttgart/bytecode/MethodGenerator.java +++ b/src/de/dhbwstuttgart/bytecode/MethodGenerator.java @@ -74,7 +74,7 @@ public class MethodGenerator extends MethodGen{ method.addAttribute(factory.createSignatureAttribute(paramTypesSig+retTypeSig)); - StackMap stackMap = new StackMapTableGen(this.getInstructionList(), cp).getStackMap(); + StackMap stackMap = new StackMapTableGen(this, cp).getStackMap(); if(stackMap != null)method.addCodeAttribute(stackMap); return method.getMethod(); diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java index 4acaa018..04900cb0 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java @@ -164,38 +164,13 @@ public class LambdaExpression extends Expr{ ret.add(method_body.TYPEStmt(ArgumentAssumptions.add(assumptions))); //Es gibt die LambdaExpression nur mit einem Block als Method Body, nicht mit einer einzelnen Expression //Die Constraints für ParameterTypen und Ret Typ erstellen: - Menge modifiedParamTypes = new Menge<>(); - for(Type pT : paramTypes){ - if(pT instanceof WildcardType){ - //Auf Typfehler kontrollieren. Siehe Bug #12 Kommentar 3 - if(pT instanceof ExtendsWildcardType){ - throw new TypeinferenceException("Typfehler von Parametertyp "+pT,this); - }else{ - modifiedParamTypes.add(pT); - } - }else{ - modifiedParamTypes.add(new SuperWildcardType((ObjectType) pT)); - } - } + Type retType = method_body.getType(); - // PN < TPH PN - if(retType instanceof WildcardType){ - //Auf Typfehler kontrollieren. Siehe Bug #12 Kommentar 3 - if(retType instanceof SuperWildcardType){ - throw new TypeinferenceException("Typfehler von Parametertyp "+retType,this); - }else{ - //retType bleibt unverändert - } - }else{ - //Die LambdaExpression kann zu diesem Zeit schon feststellen, ob der Return-Type Void ist (Kein Return-Statement): - if(!typeIsVoid(retType)){ //Nur, wenn es nicht void ist, kann der ExtendsWildcardType gebildet werden. - retType = new ExtendsWildcardType((ObjectType) retType); - } - } + if(typeIsVoid(retType)){//In diesem Fall, muss der Typ des LambdaAusdrucks FunVoid sein - this.lambdaType = new FunVoidN(modifiedParamTypes); + this.lambdaType = new FunVoidN(paramTypes); }else{ - this.lambdaType = new FunN(retType, modifiedParamTypes); + this.lambdaType = new FunN(retType, paramTypes); } ret.add(ConstraintsSet.createSingleConstraint(lambdaType.TYPE(assumptions, this),this.getType().TYPE(assumptions, this)));