forked from JavaTX/JavaCompilerCore
ObjectType eingeführt. Es muss noch Unify angepasst werden
This commit is contained in:
parent
f2bc4f0ffa
commit
324fb27b6d
@ -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<Type> 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;
|
||||
|
@ -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<br/>
|
||||
* 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<br/>
|
||||
* 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<br/>
|
||||
* Gibt die Grenze der Wildcard zurück
|
||||
*/
|
||||
public Type get_SuperBound()
|
||||
public ObjectType get_SuperBound()
|
||||
{
|
||||
return superBoundType;
|
||||
}
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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<br/>
|
||||
* 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);
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -15,7 +15,7 @@ import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException;
|
||||
*
|
||||
*/
|
||||
|
||||
public class WildcardType extends Type{
|
||||
public class WildcardType extends ObjectType{
|
||||
|
||||
/**
|
||||
* Author: Arne Lüdtke<br/>
|
||||
|
Loading…
Reference in New Issue
Block a user