TypeCheck package
This commit is contained in:
parent
5c6b001ae1
commit
01a954ca68
@ -100,7 +100,7 @@ var activeTableTab = "activeTableTab";
|
|||||||
<li>java.lang.Object</li>
|
<li>java.lang.Object</li>
|
||||||
<li>
|
<li>
|
||||||
<ul class="inheritance">
|
<ul class="inheritance">
|
||||||
<li>de.dhbwstuttgart.parser.JavaClassName</li>
|
<li>de.dhbwstuttgart.typecheck.JavaClassName</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
|
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
|
||||||
<title>Uses of Class de.dhbwstuttgart.parser.JavaClassName</title>
|
<title>Uses of Class de.dhbwstuttgart.typecheck.JavaClassName</title>
|
||||||
<meta name="date" content="2015-05-12">
|
<meta name="date" content="2015-05-12">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
|
||||||
<script type="text/javascript" src="../../../../script.js"></script>
|
<script type="text/javascript" src="../../../../script.js"></script>
|
||||||
@ -70,7 +70,7 @@
|
|||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h2 title="Uses of Class de.dhbwstuttgart.parser.JavaClassName" class="title">Uses of Class<br>de.dhbwstuttgart.parser.JavaClassName</h2>
|
<h2 title="Uses of Class de.dhbwstuttgart.typecheck.JavaClassName" class="title">Uses of Class<br>de.dhbwstuttgart.parser.JavaClassName</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="classUseContainer">
|
<div class="classUseContainer">
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
|
@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
|
|||||||
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.GenericTypeVar</a></li>
|
<li><a href="../../../../de/dhbwstuttgart/syntaxtree/type/GenericTypeVar.html" title="class in de.dhbwstuttgart.syntaxtree.type">de.dhbwstuttgart.syntaxtree.type.GenericTypeVar</a></li>
|
||||||
<li>
|
<li>
|
||||||
<ul class="inheritance">
|
<ul class="inheritance">
|
||||||
<li>de.dhbwstuttgart.syntaxtree.type.BoundedGenericTypeVar</li>
|
<li>de.dhbwstuttgart.syntaxtree.GenericTypeVar</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
|
<!-- Generated by javadoc (1.8.0_05) on Tue May 12 19:56:24 CEST 2015 -->
|
||||||
<title>Uses of Class de.dhbwstuttgart.syntaxtree.type.BoundedGenericTypeVar</title>
|
<title>Uses of Class de.dhbwstuttgart.syntaxtree.GenericTypeVar</title>
|
||||||
<meta name="date" content="2015-05-12">
|
<meta name="date" content="2015-05-12">
|
||||||
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
|
||||||
<script type="text/javascript" src="../../../../../script.js"></script>
|
<script type="text/javascript" src="../../../../../script.js"></script>
|
||||||
@ -70,7 +70,7 @@
|
|||||||
</a></div>
|
</a></div>
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.type.BoundedGenericTypeVar" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.BoundedGenericTypeVar</h2>
|
<h2 title="Uses of Class de.dhbwstuttgart.syntaxtree.GenericTypeVar" class="title">Uses of Class<br>de.dhbwstuttgart.syntaxtree.BoundedGenericTypeVar</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="classUseContainer">
|
<div class="classUseContainer">
|
||||||
<ul class="blockList">
|
<ul class="blockList">
|
||||||
|
@ -3,15 +3,12 @@ package de.dhbwstuttgart.bytecode;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Vector;
|
|
||||||
|
|
||||||
import org.apache.bcel.classfile.BootstrapMethod;
|
import org.apache.bcel.classfile.BootstrapMethod;
|
||||||
import org.apache.bcel.classfile.BootstrapMethods;
|
import org.apache.bcel.classfile.BootstrapMethods;
|
||||||
import org.apache.bcel.classfile.ConstantPool;
|
|
||||||
import org.apache.bcel.classfile.InnerClass;
|
import org.apache.bcel.classfile.InnerClass;
|
||||||
import org.apache.bcel.classfile.InnerClasses;
|
import org.apache.bcel.classfile.InnerClasses;
|
||||||
import org.apache.bcel.classfile.JavaClass;
|
import org.apache.bcel.classfile.JavaClass;
|
||||||
@ -20,14 +17,12 @@ import org.apache.bcel.classfile.Signature;
|
|||||||
import org.apache.bcel.generic.ClassGen;
|
import org.apache.bcel.generic.ClassGen;
|
||||||
import org.apache.bcel.generic.ConstantPoolGen;
|
import org.apache.bcel.generic.ConstantPoolGen;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
||||||
|
|
||||||
|
@ -1,26 +1,12 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree;
|
package de.dhbwstuttgart.syntaxtree;
|
||||||
|
|
||||||
import org.apache.bcel.generic.ClassGen;
|
|
||||||
import org.apache.bcel.generic.ConstantPoolGen;
|
|
||||||
import org.apache.bcel.generic.InstructionFactory;
|
|
||||||
import org.apache.bcel.generic.InstructionHandle;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
|
||||||
import org.apache.bcel.generic.MethodGen;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.logger.Logger;
|
import de.dhbwstuttgart.logger.Logger;
|
||||||
import de.dhbwstuttgart.logger.Section;
|
import de.dhbwstuttgart.logger.Section;
|
||||||
import de.dhbwstuttgart.logger.SectionLogger;
|
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
|
||||||
import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen;
|
|
||||||
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
|
||||||
import de.dhbwstuttgart.core.IItemWithOffset;
|
import de.dhbwstuttgart.core.IItemWithOffset;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Static;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Expr;
|
import de.dhbwstuttgart.syntaxtree.statement.Expr;
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Statement;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.SuperCall;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
|
@ -1,41 +1,20 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree;
|
package de.dhbwstuttgart.syntaxtree;
|
||||||
|
|
||||||
import org.apache.bcel.Constants;
|
import org.apache.bcel.Constants;
|
||||||
import org.apache.bcel.classfile.ConstantPool;
|
|
||||||
import org.apache.bcel.generic.ClassGen;
|
|
||||||
import org.apache.bcel.generic.ConstantPoolGen;
|
|
||||||
import org.apache.bcel.generic.InstructionFactory;
|
|
||||||
import org.apache.bcel.generic.InstructionHandle;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
import org.apache.bcel.generic.InstructionList;
|
||||||
import org.apache.bcel.generic.MethodGen;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen;
|
import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen;
|
||||||
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
|
||||||
import de.dhbwstuttgart.bytecode.MethodGenerator;
|
import de.dhbwstuttgart.bytecode.MethodGenerator;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Return;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.SuperCall;
|
import de.dhbwstuttgart.syntaxtree.statement.SuperCall;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.ConstructorAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.ConstructorAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.ParameterAssumption;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertPoint;
|
|
||||||
import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertSet;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Void;
|
import de.dhbwstuttgart.syntaxtree.type.Void;
|
||||||
|
|
||||||
public class Constructor extends Method {
|
public class Constructor extends Method {
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.type;
|
package de.dhbwstuttgart.syntaxtree;
|
||||||
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -19,7 +15,7 @@ import java.util.List;
|
|||||||
* @author hoti 4.5.06
|
* @author hoti 4.5.06
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class BoundedGenericTypeVar extends SyntaxTreeNode
|
public class GenericTypeVar extends SyntaxTreeNode
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,7 +24,7 @@ public class BoundedGenericTypeVar extends SyntaxTreeNode
|
|||||||
List<RefType> bounds=new ArrayList<RefType>();
|
List<RefType> bounds=new ArrayList<RefType>();
|
||||||
private int endOffset;
|
private int endOffset;
|
||||||
|
|
||||||
public BoundedGenericTypeVar(String s, List<RefType> bounds, int offset, int endOffset)
|
public GenericTypeVar(String s, List<RefType> bounds, int offset, int endOffset)
|
||||||
{
|
{
|
||||||
super(s, offset);
|
super(s, offset);
|
||||||
if(bounds != null)for(RefType t : bounds){
|
if(bounds != null)for(RefType t : bounds){
|
||||||
@ -49,9 +45,9 @@ public class BoundedGenericTypeVar extends SyntaxTreeNode
|
|||||||
return bounds;
|
return bounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BoundedGenericTypeVar clone()
|
public GenericTypeVar clone()
|
||||||
{
|
{
|
||||||
return new BoundedGenericTypeVar(this.getName().toString(), this.getBounds(), getOffset(), this.getEndOffset());
|
return new GenericTypeVar(this.getName().toString(), this.getBounds(), getOffset(), this.getEndOffset());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString()
|
public String toString()
|
@ -2,55 +2,34 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree;
|
package de.dhbwstuttgart.syntaxtree;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.bcel.Constants;
|
import org.apache.bcel.Constants;
|
||||||
import org.apache.bcel.classfile.Signature;
|
|
||||||
import org.apache.bcel.generic.ClassGen;
|
|
||||||
import org.apache.bcel.generic.ConstantPoolGen;
|
|
||||||
import org.apache.bcel.generic.InstructionFactory;
|
|
||||||
import org.apache.bcel.generic.InstructionHandle;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
import org.apache.bcel.generic.InstructionList;
|
||||||
import org.apache.bcel.generic.MethodGen;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.typeinference.Menge.Equal;
|
|
||||||
import de.dhbwstuttgart.logger.Logger;
|
import de.dhbwstuttgart.logger.Logger;
|
||||||
import de.dhbwstuttgart.logger.Section;
|
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen;
|
import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen;
|
||||||
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
||||||
import de.dhbwstuttgart.bytecode.MethodGenerator;
|
import de.dhbwstuttgart.bytecode.MethodGenerator;
|
||||||
import de.dhbwstuttgart.core.IItemWithOffset;
|
import de.dhbwstuttgart.core.IItemWithOffset;
|
||||||
import de.dhbwstuttgart.core.MyCompiler;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Static;
|
import de.dhbwstuttgart.syntaxtree.modifier.Static;
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Expr;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Return;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Statement;
|
import de.dhbwstuttgart.syntaxtree.statement.Statement;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeInsertable;
|
import de.dhbwstuttgart.typeinference.TypeInsertable;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
||||||
import de.dhbwstuttgart.typeinference.UndConstraint;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.ParameterAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.ParameterAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertPoint;
|
|
||||||
|
|
||||||
// ino.class.Method.23482.declaration
|
// ino.class.Method.23482.declaration
|
||||||
/**
|
/**
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree;
|
package de.dhbwstuttgart.syntaxtree;
|
||||||
import java.io.IOException;
|
|
||||||
import java.lang.reflect.Array;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
|
|
||||||
@ -18,19 +11,15 @@ import java.util.stream.Stream;
|
|||||||
import de.dhbwstuttgart.logger.Logger;
|
import de.dhbwstuttgart.logger.Logger;
|
||||||
import de.dhbwstuttgart.logger.Section;
|
import de.dhbwstuttgart.logger.Section;
|
||||||
import de.dhbwstuttgart.core.MyCompiler;
|
import de.dhbwstuttgart.core.MyCompiler;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory;
|
import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Public;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.FunN;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Void;
|
import de.dhbwstuttgart.syntaxtree.type.Void;
|
||||||
import de.dhbwstuttgart.typeinference.ByteCodeResult;
|
import de.dhbwstuttgart.typeinference.ByteCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
||||||
import de.dhbwstuttgart.typeinference.FunNInterface;
|
|
||||||
import de.dhbwstuttgart.typeinference.Pair;
|
import de.dhbwstuttgart.typeinference.Pair;
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
|
@ -5,8 +5,8 @@ import java.lang.reflect.TypeVariable;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.parser.JavaClassRegistry;
|
import de.dhbwstuttgart.typecheck.JavaClassRegistry;
|
||||||
import de.dhbwstuttgart.syntaxtree.*;
|
import de.dhbwstuttgart.syntaxtree.*;
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
import de.dhbwstuttgart.syntaxtree.Class;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
||||||
|
@ -2,32 +2,9 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.operator;
|
package de.dhbwstuttgart.syntaxtree.operator;
|
||||||
// ino.end
|
// ino.end
|
||||||
// ino.module.EqualOp.8597.import
|
// ino.module.EqualOp.8597.import
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import org.apache.bcel.Constants;
|
|
||||||
import org.apache.bcel.generic.BranchInstruction;
|
import org.apache.bcel.generic.BranchInstruction;
|
||||||
import org.apache.bcel.generic.GOTO;
|
|
||||||
import org.apache.bcel.generic.IF_ICMPNE;
|
import org.apache.bcel.generic.IF_ICMPNE;
|
||||||
import org.apache.bcel.generic.InstructionConstants;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
|
||||||
import org.apache.bcel.generic.NOP;
|
|
||||||
import org.apache.bcel.generic.ObjectType;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
|
||||||
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Binary;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Expr;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Null;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|
||||||
import de.dhbwstuttgart.typeinference.Pair;
|
|
||||||
import de.dhbwstuttgart.typeinference.unify.TypeUnify;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ino.class.EqualOp.24118.declaration
|
// ino.class.EqualOp.24118.declaration
|
||||||
|
@ -1,39 +1,21 @@
|
|||||||
|
|
||||||
package de.dhbwstuttgart.syntaxtree.statement;
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
|
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import org.apache.bcel.generic.ASTORE;
|
|
||||||
import org.apache.bcel.generic.ClassGen;
|
|
||||||
import org.apache.bcel.generic.DSTORE;
|
|
||||||
import org.apache.bcel.generic.FSTORE;
|
|
||||||
import org.apache.bcel.generic.ISTORE;
|
|
||||||
import org.apache.bcel.generic.InstructionFactory;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
import org.apache.bcel.generic.InstructionList;
|
||||||
import org.apache.bcel.generic.LSTORE;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
||||||
import de.dhbwstuttgart.logger.Logger;
|
import de.dhbwstuttgart.logger.Logger;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Void;
|
import de.dhbwstuttgart.syntaxtree.type.Void;
|
||||||
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.Pair;
|
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
import de.dhbwstuttgart.typeinference.unify.TypeUnify;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class Assign extends ExprStmt
|
public class Assign extends ExprStmt
|
||||||
|
@ -2,43 +2,25 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.statement;
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
// ino.end
|
// ino.end
|
||||||
// ino.module.Binary.8623.import
|
// ino.module.Binary.8623.import
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Hashtable;
|
|
||||||
|
|
||||||
import org.apache.bcel.generic.BranchInstruction;
|
|
||||||
import org.apache.bcel.generic.ClassGen;
|
import org.apache.bcel.generic.ClassGen;
|
||||||
import org.apache.bcel.generic.GOTO;
|
|
||||||
import org.apache.bcel.generic.IF_ICMPNE;
|
|
||||||
import org.apache.bcel.generic.InstructionConstants;
|
|
||||||
import org.apache.bcel.generic.InstructionList;
|
import org.apache.bcel.generic.InstructionList;
|
||||||
import org.apache.bcel.generic.NOP;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.logger.Logger;
|
import de.dhbwstuttgart.logger.Logger;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.AddOp;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.LogOp;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.MulOp;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.Operator;
|
import de.dhbwstuttgart.syntaxtree.operator.Operator;
|
||||||
import de.dhbwstuttgart.syntaxtree.operator.RelOp;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.OderConstraint;
|
import de.dhbwstuttgart.typeinference.OderConstraint;
|
||||||
import de.dhbwstuttgart.typeinference.Pair;
|
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.UndConstraint;
|
import de.dhbwstuttgart.typeinference.UndConstraint;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ino.class.Binary.24966.description type=line
|
// ino.class.Binary.24966.description type=line
|
||||||
|
@ -1,51 +1,34 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.statement;
|
package de.dhbwstuttgart.syntaxtree.statement;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.bcel.Const;
|
import org.apache.bcel.Const;
|
||||||
import org.apache.bcel.Constants;
|
|
||||||
import org.apache.bcel.classfile.BootstrapMethod;
|
import org.apache.bcel.classfile.BootstrapMethod;
|
||||||
import org.apache.bcel.classfile.ConstantMethodHandle;
|
import org.apache.bcel.classfile.ConstantMethodHandle;
|
||||||
import org.apache.bcel.classfile.ConstantMethodType;
|
import org.apache.bcel.classfile.ConstantMethodType;
|
||||||
import org.apache.bcel.classfile.ConstantPool;
|
|
||||||
import org.apache.bcel.classfile.InnerClass;
|
import org.apache.bcel.classfile.InnerClass;
|
||||||
import org.apache.bcel.generic.BIPUSH;
|
|
||||||
import org.apache.bcel.generic.ClassGen;
|
|
||||||
import org.apache.bcel.generic.ConstantPoolGen;
|
|
||||||
import org.apache.bcel.generic.InstructionFactory;
|
import org.apache.bcel.generic.InstructionFactory;
|
||||||
import org.apache.bcel.generic.InstructionList;
|
import org.apache.bcel.generic.InstructionList;
|
||||||
import org.apache.bcel.generic.MethodGen;
|
|
||||||
import org.apache.bcel.generic.INVOKEDYNAMIC;
|
|
||||||
import org.apache.bcel.generic.Instruction;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen;
|
import de.dhbwstuttgart.bytecode.DHBWConstantPoolGen;
|
||||||
import de.dhbwstuttgart.bytecode.MethodGenerator;
|
import de.dhbwstuttgart.bytecode.MethodGenerator;
|
||||||
import de.dhbwstuttgart.bytecode.TypePlaceholderType;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.ClassHelper;
|
import de.dhbwstuttgart.syntaxtree.ClassHelper;
|
||||||
import de.dhbwstuttgart.syntaxtree.FormalParameter;
|
import de.dhbwstuttgart.syntaxtree.FormalParameter;
|
||||||
import de.dhbwstuttgart.syntaxtree.Method;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.ParameterList;
|
import de.dhbwstuttgart.syntaxtree.ParameterList;
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.ExtendsWildcardType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.FunN;
|
import de.dhbwstuttgart.syntaxtree.type.FunN;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.FunVoidN;
|
import de.dhbwstuttgart.syntaxtree.type.FunVoidN;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.ObjectType;
|
import de.dhbwstuttgart.syntaxtree.type.ObjectType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.SuperWildcardType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.WildcardType;
|
|
||||||
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
import de.dhbwstuttgart.typeinference.ConstraintsSet;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.OderConstraint;
|
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.Typeable;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.ParameterAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.ParameterAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.type;
|
package de.dhbwstuttgart.syntaxtree.type;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
|
@ -2,22 +2,13 @@ package de.dhbwstuttgart.syntaxtree.type;
|
|||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.FunNInterface;
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.Method;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.ParameterList;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.factory.NameGenerator;
|
import de.dhbwstuttgart.syntaxtree.factory.NameGenerator;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see Spezifikation "Complete Typeinference in Java 8" von Martin Plümicke
|
* @see Spezifikation "Complete Typeinference in Java 8" von Martin Plümicke
|
||||||
|
@ -2,16 +2,9 @@ package de.dhbwstuttgart.syntaxtree.type;
|
|||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Method;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.ParameterList;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FunVoid<T1,...,TN> {
|
* FunVoid<T1,...,TN> {
|
||||||
|
@ -1,30 +1,19 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.type;
|
package de.dhbwstuttgart.syntaxtree.type;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.logger.Logger;
|
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.core.IItemWithOffset;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
import de.dhbwstuttgart.syntaxtree.Class;
|
||||||
import de.dhbwstuttgart.syntaxtree.Constructor;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Method;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SourceFile;
|
import de.dhbwstuttgart.syntaxtree.SourceFile;
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.syntaxtree.factory.ASTFactory;
|
import de.dhbwstuttgart.syntaxtree.factory.ASTFactory;
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.Block;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.SuperCall;
|
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeInsertable;
|
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
|
|
||||||
|
|
||||||
public class RefType extends SyntaxTreeNode
|
public class RefType extends SyntaxTreeNode
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.type;
|
package de.dhbwstuttgart.syntaxtree.type;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.type;
|
package de.dhbwstuttgart.syntaxtree.type;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
import de.dhbwstuttgart.logger.*;
|
import de.dhbwstuttgart.logger.*;
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
import de.dhbwstuttgart.bytecode.DHBWInstructionFactory;
|
||||||
import de.dhbwstuttgart.bytecode.TypePlaceholderType;
|
import de.dhbwstuttgart.bytecode.TypePlaceholderType;
|
||||||
import de.dhbwstuttgart.core.MyCompiler;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.syntaxtree.factory.NameGenerator;
|
import de.dhbwstuttgart.syntaxtree.factory.NameGenerator;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
@ -16,10 +14,7 @@ import de.dhbwstuttgart.typeinference.ResultSet;
|
|||||||
import de.dhbwstuttgart.typeinference.TypeInsertable;
|
import de.dhbwstuttgart.typeinference.TypeInsertable;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertPoint;
|
import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertPoint;
|
||||||
import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertSet;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Repr�sentiert einen Typparameter f�r einen vom Programmierer nicht angegeben
|
* Repr�sentiert einen Typparameter f�r einen vom Programmierer nicht angegeben
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
package de.dhbwstuttgart.syntaxtree.type;
|
package de.dhbwstuttgart.syntaxtree.type;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
import de.dhbwstuttgart.bytecode.ClassGenerator;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
||||||
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
import de.dhbwstuttgart.typeinference.JavaCodeResult;
|
||||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException;
|
import de.dhbwstuttgart.typeinference.exceptions.NotImplementedException;
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
||||||
|
|
||||||
|
129
src/de/dhbwstuttgart/typecheck/JavaClassName.java
Normal file
129
src/de/dhbwstuttgart/typecheck/JavaClassName.java
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
package de.dhbwstuttgart.typecheck;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stellt den Namen einer Java Klasse dar.
|
||||||
|
* Dieser kann auch den Packagenamen mit beinhalten: de.dhbwstuttgart.typeinference.Menge
|
||||||
|
*
|
||||||
|
* @author janulrich
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class JavaClassName {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private PackageName packageName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: JavaClassName sollten aus den Assumptions generiert werden.
|
||||||
|
* Diese wissen, welche Typen und Typnamen existieren und können direkt auf Korrektheit prüfen.
|
||||||
|
*/
|
||||||
|
JavaClassName(String name){
|
||||||
|
if(name == null)throw new NullPointerException();
|
||||||
|
|
||||||
|
String[] names = name.split("[.]");
|
||||||
|
boolean match = true;
|
||||||
|
if(names.length == 1){
|
||||||
|
//packageName = new PackageName();
|
||||||
|
this.name = name;
|
||||||
|
}else {
|
||||||
|
name = names[names.length-1];
|
||||||
|
List<String> packageNames = new ArrayList<String>();
|
||||||
|
for(int i = 0; i<names.length-1;i++){
|
||||||
|
packageNames.add(names[i]);
|
||||||
|
}
|
||||||
|
packageName = new PackageName(packageNames);
|
||||||
|
this.name = names[names.length-1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Auto-generated hashCode:
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + ((name == null) ? 0 : name.hashCode());
|
||||||
|
//result = prime * result
|
||||||
|
// + ((packageName == null) ? 0 : packageName.hashCode()); //PackageName does not infect hashCode
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Namen sind nur gleich, wenn bei den beiden zu vergleichenden JavaClassNames auch das Package angegeben ist
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj)
|
||||||
|
return true;
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
if(obj instanceof String)
|
||||||
|
return this.toString().equals(obj) || (this.name != null && this.name.equals(obj)); //Auch mit Strings als Klassennamen kompatibel TODO: sollte bald obsolet sein
|
||||||
|
if (getClass() != obj.getClass())
|
||||||
|
return false;
|
||||||
|
JavaClassName other = (JavaClassName) obj;
|
||||||
|
if (name == null) {
|
||||||
|
if (other.name != null)
|
||||||
|
return false;
|
||||||
|
} else if (!name.equals(other.name))
|
||||||
|
return false;
|
||||||
|
if (packageName != null && other.packageName != null) {
|
||||||
|
if (!packageName.equals(other.packageName))
|
||||||
|
return false;//Spezialfall, nicht beide Typen müssen eindeutig mit Packagenamen angegeben werden
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return (packageName!=null ? packageName.toString() : "") + name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PackageName{
|
||||||
|
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
|
|
||||||
|
public PackageName(List<String> packageNames) {
|
||||||
|
names = packageNames;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PackageName() {
|
||||||
|
//Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + ((names == null) ? 0 : names.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj)
|
||||||
|
return true;
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
if (getClass() != obj.getClass())
|
||||||
|
return false;
|
||||||
|
PackageName other = (PackageName) obj;
|
||||||
|
if (names == null) {
|
||||||
|
if (other.names != null)
|
||||||
|
return false;
|
||||||
|
} else if (!names.equals(other.names))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
String ret = "";
|
||||||
|
if(names == null)return "";
|
||||||
|
for(String n : names)ret+=n+".";
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
18
src/de/dhbwstuttgart/typecheck/JavaClassRegistry.java
Normal file
18
src/de/dhbwstuttgart/typecheck/JavaClassRegistry.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package de.dhbwstuttgart.typecheck;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Speichert die Klassen im aktuellen Projektscope
|
||||||
|
*/
|
||||||
|
public class JavaClassRegistry {
|
||||||
|
public List<JavaClassName> existingClasses = new ArrayList<>();
|
||||||
|
|
||||||
|
public JavaClassName getName(String className) {
|
||||||
|
for(JavaClassName name : existingClasses){
|
||||||
|
if(name.toString().equals(className))return name;
|
||||||
|
}
|
||||||
|
throw new TypeNotPresentException(className, new Throwable());
|
||||||
|
}
|
||||||
|
}
|
@ -1,19 +1,15 @@
|
|||||||
package de.dhbwstuttgart.typeinference;
|
package de.dhbwstuttgart.typeinference;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
import de.dhbwstuttgart.syntaxtree.Class;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.FunN;
|
import de.dhbwstuttgart.syntaxtree.type.FunN;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.ClassAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.ClassAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
|
@ -1,14 +1,9 @@
|
|||||||
package de.dhbwstuttgart.typeinference;
|
package de.dhbwstuttgart.typeinference;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
import de.dhbwstuttgart.syntaxtree.Class;
|
||||||
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
import de.dhbwstuttgart.syntaxtree.modifier.Modifiers;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.ClassAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.ClassAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
import de.dhbwstuttgart.typeinference.assumptions.MethodAssumption;
|
||||||
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
import de.dhbwstuttgart.typeinference.assumptions.TypeAssumptions;
|
||||||
|
@ -1,18 +1,10 @@
|
|||||||
package de.dhbwstuttgart.typeinference;
|
package de.dhbwstuttgart.typeinference;
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.ObjectInputStream;
|
|
||||||
import java.io.ObjectOutputStream;
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
|
||||||
import de.dhbwstuttgart.typeinference.unify.model.PairOperator;
|
import de.dhbwstuttgart.typeinference.unify.model.PairOperator;
|
||||||
// ino.end
|
// ino.end
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.FreshWildcardType;
|
import de.dhbwstuttgart.syntaxtree.type.FreshWildcardType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
package de.dhbwstuttgart.typeinference.assumptions;
|
package de.dhbwstuttgart.typeinference.assumptions;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.typeinference.TypeInsertable;
|
import de.dhbwstuttgart.typeinference.TypeInsertable;
|
||||||
import de.dhbwstuttgart.typeinference.Typeable;
|
|
||||||
|
|
||||||
public class Assumption {
|
public class Assumption {
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
package de.dhbwstuttgart.typeinference.assumptions;
|
package de.dhbwstuttgart.typeinference.assumptions;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
import de.dhbwstuttgart.syntaxtree.Class;
|
||||||
import de.dhbwstuttgart.syntaxtree.Field;
|
import de.dhbwstuttgart.syntaxtree.Field;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
|
|
||||||
public class FieldAssumption extends Assumption {
|
public class FieldAssumption extends Assumption {
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
package de.dhbwstuttgart.typeinference.assumptions;
|
package de.dhbwstuttgart.typeinference.assumptions;
|
||||||
|
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.FieldDeclaration;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.GTVDeclarationContext;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.Method;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.statement.LocalVarDecl;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
|
||||||
|
|
||||||
public class GenericVarAssumption extends Assumption{
|
public class GenericVarAssumption extends Assumption{
|
||||||
|
|
||||||
|
@ -1,25 +1,14 @@
|
|||||||
package de.dhbwstuttgart.typeinference.assumptions;
|
package de.dhbwstuttgart.typeinference.assumptions;
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import de.dhbwstuttgart.typeinference.Menge;
|
import de.dhbwstuttgart.typeinference.Menge;
|
||||||
|
|
||||||
import de.dhbwstuttgart.core.IItemWithOffset;
|
|
||||||
import de.dhbwstuttgart.logger.Logger;
|
import de.dhbwstuttgart.logger.Logger;
|
||||||
import de.dhbwstuttgart.logger.Section;
|
import de.dhbwstuttgart.logger.Section;
|
||||||
import de.dhbwstuttgart.parser.JavaClassName;
|
import de.dhbwstuttgart.typecheck.JavaClassName;
|
||||||
import de.dhbwstuttgart.syntaxtree.Class;
|
import de.dhbwstuttgart.syntaxtree.Class;
|
||||||
import de.dhbwstuttgart.syntaxtree.GTVDeclarationContext;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.SyntaxTreeNode;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.FunN;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.Type;
|
import de.dhbwstuttgart.syntaxtree.type.Type;
|
||||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
|
||||||
import de.dhbwstuttgart.syntaxtree.type.WildcardType;
|
|
||||||
import de.dhbwstuttgart.typeinference.FunNInterface;
|
|
||||||
import de.dhbwstuttgart.typeinference.FunNMethod;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.DebugException;
|
|
||||||
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Eine Sammlung von TypeAssumptions.
|
* Eine Sammlung von TypeAssumptions.
|
||||||
|
Loading…
Reference in New Issue
Block a user