This commit is contained in:
JanUlrich 2014-12-05 17:27:17 +01:00
commit 66da1d2638
8 changed files with 57 additions and 13 deletions

View File

@ -3,7 +3,7 @@
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry excluding=".classpath|.cvsignore|.externalToolBuilders/|.project|.settings/|Papers/|bin/|doc/|examples/|lib/|notizen/|src/|test/|tools/" including="log4j.xml" kind="src" path=""/> <classpathentry excluding=".classpath|.cvsignore|.externalToolBuilders/|.project|.settings/|Papers/|bin/|doc/|examples/|lib/|notizen/|src/|test/|tools/" including="log4j.xml" kind="src" path=""/>
<classpathentry kind="src" path="test"/> <classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 8 [1.8.0]"/>
<classpathentry kind="lib" path="lib/junit-4.0.jar"/> <classpathentry kind="lib" path="lib/junit-4.0.jar"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

3
bin/.gitignore vendored
View File

@ -1,2 +1,5 @@
/de/ /de/
/plugindevelopment/ /plugindevelopment/
=======
/syntaxTree/
/bytecode/

View File

@ -250,7 +250,7 @@ public class CodeAttribute extends Attribute
// ino.method.codegen.21757.definition // ino.method.codegen.21757.definition
public void codegen(ClassFile classfile, FileOutputStream f) public void codegen(ClassFile classfile, OutputStream f)
throws JVMCodeException, IOException throws JVMCodeException, IOException
// ino.end // ino.end
// ino.method.codegen.21757.body // ino.method.codegen.21757.body
@ -1088,11 +1088,11 @@ public class CodeAttribute extends Attribute
} }
// ino.end // ino.end
@Override // @Override
public void codegen(ClassFile classfile, OutputStream f) // public void codegen(ClassFile classfile, OutputStream f)
throws JVMCodeException, IOException { // throws JVMCodeException, IOException {
throw new NotImplementedException(); // throw new NotImplementedException();
} // }
} }
// ino.end // ino.end

View File

@ -186,7 +186,7 @@ public class SignatureInfo extends Attribute
// ino.end // ino.end
// ino.method.codegen.22987.definition // ino.method.codegen.22987.definition
public void codegen(ClassFile classfile, FileOutputStream f) public void codegen(ClassFile classfile, OutputStream f)
throws JVMCodeException, IOException throws JVMCodeException, IOException
// ino.end // ino.end
// ino.method.codegen.22987.body // ino.method.codegen.22987.body
@ -266,11 +266,11 @@ public class SignatureInfo extends Attribute
} }
// ino.end // ino.end
@Override // @Override
public void codegen(ClassFile classfile, OutputStream f) // public void codegen(ClassFile classfile, OutputStream f)
throws JVMCodeException, IOException { // throws JVMCodeException, IOException {
throw new NotImplementedException(); // throw new NotImplementedException();
} // }
} }
// ino.end // ino.end

View File

@ -16,6 +16,9 @@ public class ConstraintType{
public ConstraintType(RefType t){ public ConstraintType(RefType t){
this.t = t; this.t = t;
} }
public ConstraintType(WildcardType t){
this.t = t;
}
public Type getType() { public Type getType() {
return t; return t;
} }

View File

@ -13,6 +13,7 @@ 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.syntaxtree.type.WildcardType;
import de.dhbwstuttgart.typeinference.ConstraintType; import de.dhbwstuttgart.typeinference.ConstraintType;
import de.dhbwstuttgart.typeinference.FunN; import de.dhbwstuttgart.typeinference.FunN;
import de.dhbwstuttgart.typeinference.FunNInterface; import de.dhbwstuttgart.typeinference.FunNInterface;
@ -285,6 +286,13 @@ public class TypeAssumptions {
* @return null, falls der Typ nicht vorhanden ist. * @return null, falls der Typ nicht vorhanden ist.
*/ */
public ConstraintType getTypeFor(Type t, SyntaxTreeNode inNode){ public ConstraintType getTypeFor(Type t, SyntaxTreeNode inNode){
if(t instanceof WildcardType){
WildcardType wt = (WildcardType)t;
Type innerType = wt.GetWildcardType();
innerType = getTypeFor(innerType, t).getType();
wt.SetWildcardType(innerType);
return new ConstraintType(wt);
}
if(t instanceof TypePlaceholder) if(t instanceof TypePlaceholder)
return new ConstraintType((TypePlaceholder)t); //Handelt es sich um einen TypePlaceholder kann dieser nicht in den Assumptions vorkommen. return new ConstraintType((TypePlaceholder)t); //Handelt es sich um einen TypePlaceholder kann dieser nicht in den Assumptions vorkommen.

View File

@ -2400,6 +2400,36 @@ throws MatchException
return true; return true;
} }
} }
//Wildcard ergänzt PL 12-12-05
if ( T instanceof ExtendsWildcardType )
{
Type Temp = ((ExtendsWildcardType) T).get_ExtendsType();
if( Temp instanceof TypePlaceholder )
{
if( Temp.getName().equals(a.getName()) )
{
// Typvariable ersetzen
((ExtendsWildcardType) T).SetWildcardType(o);
return true;
}
}
}
if ( T instanceof SuperWildcardType )
{
Type Temp = ((SuperWildcardType) T).get_SuperType();
if( Temp instanceof TypePlaceholder )
{
if( Temp.getName().equals(a.getName()) )
{
// Typvariable ersetzen
((SuperWildcardType) T).SetWildcardType(o);
return true;
}
}
}
return false; return false;
} }
// ino.end // ino.end

Binary file not shown.