diff --git a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java index 8e21bd7c..144d1278 100755 --- a/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java +++ b/src/de/dhbwstuttgart/syntaxtree/statement/LambdaExpression.java @@ -17,6 +17,7 @@ import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; import de.dhbwstuttgart.syntaxtree.type.DoubleType; import de.dhbwstuttgart.syntaxtree.type.ExtendsWildcardType; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; +import de.dhbwstuttgart.syntaxtree.type.ObjectType; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.SuperWildcardType; import de.dhbwstuttgart.syntaxtree.type.Type; @@ -154,7 +155,11 @@ public class LambdaExpression extends Expr{ //Die Typen innerhalb von FunN anpassen: Vector superParamTypes = new Vector<>(); for(Type pT : paramTypes){ - superParamTypes.add(new SuperWildcardType(pT.getOffset(), pT)); + if(pT instanceof ObjectType){ + superParamTypes.add(new SuperWildcardType(pT.getOffset(), (ObjectType) pT)); + }else{ + superParamTypes.add(pT); + } } Type retType = method_body.getType(); Type extRetType = retType; diff --git a/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java index 411cd1a8..6670db46 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/FreshSuperWildcardType.java @@ -4,13 +4,13 @@ import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode; public class FreshSuperWildcardType extends FreshWildcardType implements IMatchable { - private Type superBoundType; + private ObjectType superBoundType; /** * Author: Arne Lüdtke
* Standard Konstruktor für eine FreshSuperWildcard */ - public FreshSuperWildcardType(Type superBound ,SyntaxTreeNode parent, int offset) + public FreshSuperWildcardType(ObjectType superBound ,SyntaxTreeNode parent, int offset) { super(parent,offset); this.superBoundType = superBound; @@ -20,7 +20,7 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha * Author: Arne Lüdtke
* Privater Konstruktor für clone */ - private FreshSuperWildcardType(Type superBound,SyntaxTreeNode parent,int offset, String name) + private FreshSuperWildcardType(ObjectType superBound,SyntaxTreeNode parent,int offset, String name) { super(parent,offset,name); this.superBoundType = superBound; @@ -46,14 +46,14 @@ public class FreshSuperWildcardType extends FreshWildcardType implements IMatcha */ public FreshSuperWildcardType clone() { - return new FreshSuperWildcardType(this.superBoundType.clone(),this.getParent(),getOffset(),this.name.toString()); + return new FreshSuperWildcardType((ObjectType) this.superBoundType.clone(),this.getParent(),getOffset(),this.name.toString()); } /** * Author: Arne Lüdtke
* Gibt die Grenze der Wildcard zurück */ - public Type get_SuperBound() + public ObjectType get_SuperBound() { return superBoundType; } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java index 2c5d0e59..c59303c6 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/RefType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/RefType.java @@ -28,7 +28,7 @@ import de.dhbwstuttgart.typeinference.unify.CSubstitutionSet; // ino.class.RefType.26621.declaration -public class RefType extends Type implements IMatchable +public class RefType extends ObjectType implements IMatchable // ino.end // ino.class.RefType.26621.body { diff --git a/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java index e0e08303..42f7f4bf 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/SuperWildcardType.java @@ -18,13 +18,13 @@ import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions; public class SuperWildcardType extends WildcardType implements ITypeContainer, IMatchable{ - private Type superType = null; + private ObjectType superType = null; /** * Author: Arne Lüdtke
* Standard Konstruktor für eine SuperWildcard */ - public SuperWildcardType(int offset, Type superType) + public SuperWildcardType(int offset, ObjectType superType) { super(superType.getParent(),offset); this.superType = superType; @@ -57,7 +57,7 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I */ public SuperWildcardType clone() { - return new SuperWildcardType(getOffset(), superType.clone()); + return new SuperWildcardType(getOffset(), (ObjectType) superType.clone()); } @@ -149,7 +149,7 @@ public class SuperWildcardType extends WildcardType implements ITypeContainer, I @Override public ConstraintType TYPE(TypeAssumptions ass, SyntaxTreeNode parent) { - this.superType = this.superType.TYPE(ass, parent).getType(); + this.superType = (ObjectType) this.superType.TYPE(ass, parent).getType(); return super.TYPE(ass, parent); } diff --git a/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java b/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java index 8549f31f..79bdb2e5 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/TypePlaceholder.java @@ -27,7 +27,7 @@ import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertSet; */ // ino.end // ino.class.TypePlaceholder.26780.declaration -public class TypePlaceholder extends Type +public class TypePlaceholder extends ObjectType // ino.end // ino.class.TypePlaceholder.26780.body { diff --git a/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java b/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java index aa32de77..e6277b7a 100755 --- a/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java +++ b/src/de/dhbwstuttgart/syntaxtree/type/WildcardType.java @@ -15,7 +15,7 @@ import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException; * */ -public class WildcardType extends Type{ +public class WildcardType extends ObjectType{ /** * Author: Arne Lüdtke