forked from JavaTX/JavaCompilerCore
Typen einsetzen um Wildcards erweitern
This commit is contained in:
parent
e6c58d44c2
commit
3173cccefa
@ -2,10 +2,7 @@ package de.dhbwstuttgart.typedeployment;
|
||||
|
||||
import de.dhbwstuttgart.exceptions.NotImplementedException;
|
||||
import de.dhbwstuttgart.syntaxtree.*;
|
||||
import de.dhbwstuttgart.syntaxtree.type.GenericRefType;
|
||||
import de.dhbwstuttgart.syntaxtree.type.RefType;
|
||||
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
|
||||
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
|
||||
import de.dhbwstuttgart.syntaxtree.type.*;
|
||||
import de.dhbwstuttgart.typeinference.ResultSet;
|
||||
import de.dhbwstuttgart.typeinference.constraints.Pair;
|
||||
import org.antlr.v4.runtime.Token;
|
||||
@ -112,8 +109,12 @@ public class TypeInsertFactory {
|
||||
if(typeParam instanceof TypePlaceholder){
|
||||
insert += ((TypePlaceholder) typeParam).getName();
|
||||
additionalInserts.add((TypePlaceholder) typeParam);
|
||||
}else if(typeParam instanceof RefType){
|
||||
}else if(typeParam instanceof RefType) {
|
||||
insert += createInsertString((RefType) typeParam, additionalInserts);
|
||||
}else if(typeParam instanceof SuperWildcardType){
|
||||
insert += "? super " + createInsertString(((SuperWildcardType) typeParam).getInnerType(), additionalInserts);
|
||||
}else if(typeParam instanceof ExtendsWildcardType){
|
||||
insert += "? extends " + createInsertString(((ExtendsWildcardType) typeParam).getInnerType(), additionalInserts);
|
||||
}else throw new NotImplementedException();
|
||||
if(iterator.hasNext())insert += ", ";
|
||||
}
|
||||
|
@ -4,15 +4,9 @@ mathStruc(A a) { ;}
|
||||
|
||||
A model(){ A a; return a; }
|
||||
|
||||
void methode(){
|
||||
methode(){
|
||||
auto innerOp = o -> ms ->
|
||||
new mathStruc<A>(o.apply(this.model(),ms.model()));
|
||||
return innerOp;
|
||||
}
|
||||
}
|
||||
|
||||
interface Fun1<A,B>{
|
||||
A apply(B b);
|
||||
}
|
||||
interface Fun2<A,B,C>{
|
||||
A apply(B b, C c);
|
||||
}
|
@ -26,8 +26,8 @@ public class JavaTXCompilerTest {
|
||||
|
||||
@Test
|
||||
public void test() throws IOException, ClassNotFoundException {
|
||||
//filesToTest.add(new File(rootDirectory+"mathStruc.jav"));
|
||||
filesToTest.add(new File(rootDirectory+"Lambda.jav"));
|
||||
filesToTest.add(new File(rootDirectory+"mathStruc.jav"));
|
||||
//filesToTest.add(new File(rootDirectory+"Lambda.jav"));
|
||||
//filesToTest.add(new File(rootDirectory+"Lambda2.jav"));
|
||||
//filesToTest.add(new File(rootDirectory+"Lambda3.jav"));
|
||||
//filesToTest.add(new File(rootDirectory+"Vector.jav"));
|
||||
|
Loading…
Reference in New Issue
Block a user