Compare commits

...

121 Commits

Author SHA1 Message Date
bb01e78123 Undo that change 2023-06-27 09:51:07 +02:00
e1e1f3eafc Insert missing case 2023-06-26 13:14:53 +02:00
9c1e016bb1 Merge and fix folder structure 2023-06-26 12:31:00 +02:00
eaeb3c4106 Modified expected AST for Faculty according to Faculty.jav 2023-06-24 19:48:36 +02:00
1fb431ab36 After merge fixes Codegen.java 2023-06-24 19:45:08 +02:00
124313cb16 Merge remote-tracking branch 'origin/bigRefactoring' into patternMatching 2023-06-24 19:09:39 +02:00
d48b888075 Bug fixes, TestComplete in 'syntaxtreegenerator' runs without error 2023-06-24 18:54:31 +02:00
f5aa90bdbd Add Cycle class (again) 2023-06-23 09:40:23 +02:00
4bcb91ce2d Refactor bounds to make the invocation smaller 2023-06-22 17:13:15 +02:00
97a1bcbbe1 Fix T1 & T2 refering to method signature instead of actual types 2023-06-22 17:13:01 +02:00
f32b1ee5b2 Fix auxiliary files not containing parent interface 2023-06-22 14:32:41 +02:00
711aa70d48 Update to java 20 and some refactoring 2023-06-22 09:34:15 +02:00
168a499811 Set typeinfernce tests to be ignored 2023-06-21 21:38:58 +02:00
d52fbeb1ae Moved all javFiles to test/resources/javFiles and removed unused resources 2023-06-21 21:06:14 +02:00
ce0ef10c8d Added missing AST blueprint for 'syntaxtreegenerator' tests 2023-06-21 21:02:53 +02:00
81e19f5315 Fixed syntaxtreegenerator to determine correct receiver of methodcall 2023-06-21 20:46:23 +02:00
89a791b81e Fixed NotImplemented for field accesses in "dottexression" 2023-06-21 19:56:16 +02:00
2d1caf9ded fix stash 2023-06-21 18:24:09 +02:00
49b0494f36 Removed file to fix stashes 2023-06-21 18:21:59 +02:00
60e2d8177b fix idTest() in syntaxtreegenerator 2023-06-21 18:18:38 +02:00
62e7a1c871 Bug fix and test exclusion 2023-06-21 10:10:32 +02:00
761dd48fa1 Test directory cleanup 2023-06-21 09:37:58 +02:00
4a18a81b33 Alter tests a bit 2023-06-15 16:31:50 +02:00
9eb0dd1cf5 Iteration 2023-06-15 14:13:15 +02:00
bb0ee7d517 Refactoring 2023-06-13 16:33:54 +02:00
fe2b3accb3 Fix not looking up the tph in equality 2023-06-13 10:28:20 +02:00
78ad7bc003 Fixed bugs in StatementGenerator regarding constructor generation and field accesses 2023-06-09 17:26:55 +02:00
f08744479a Started test driven bug fixing for SyntaxTreeGenerator 2023-06-07 22:24:16 +02:00
bf15ff693e Created TestComplete for unit SyntaxTreeGenerator 2023-06-07 21:08:46 +02:00
48199b5d2e Created test suite for syntaxtreegenerator including resources 2023-06-06 21:21:26 +02:00
7556b9f590 Fixed parser bug that caused TestComplete to fail 2023-06-06 19:43:56 +02:00
03b7f12541 Merge 2023-06-06 16:36:12 +02:00
ecc5dfcef6 Add class file 2023-06-06 16:35:42 +02:00
f33aab9cfb Merge 2023-06-06 16:16:41 +02:00
3875de7f80 Fix local variable conversion and not loading interfaces 2023-06-06 13:46:53 +02:00
69f44c2927 Merge branch 'targetBytecode' of gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-06-06 10:17:01 +02:00
26398a692f modified: resources/AllgemeinTest/Iteration.jav 2023-06-06 10:16:54 +02:00
e13baa8acb modified: resources/AllgemeinTest/Iteration.jav 2023-06-05 15:25:55 +02:00
3c86eecf8b modified: ../../pom.xml
new file:   Iteration.jav
	modified:   Pair.jav
	modified:   ../../src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
	modified:   ../../src/test/java/AllgemeinTest.java
2023-06-05 13:14:00 +02:00
63c5cb8390 Moved test resources to src/test and refactored tests 2023-06-05 09:28:55 +02:00
e3edd0410a added astprinter to parsertest 2023-06-03 18:59:11 +02:00
eb5cf1ab33 StackOverflow fix switchexpression 2023-06-03 17:54:37 +02:00
b409175a25 Add --enable-preview to surefire test plugin 2023-06-03 17:33:08 +02:00
a54938cb65 bug fix empty param list 2023-06-01 21:18:08 +02:00
30a62a6621 bug fix VectorNotObject test 2023-06-01 20:59:16 +02:00
dce3ed8051 Some fixes for the plugin 2023-06-01 16:13:03 +02:00
8e5a20e59e Fix incorrect signature 2023-05-31 11:38:47 +02:00
337ff8b865 Fix incorrect signatures 2023-05-24 16:51:53 +02:00
1d7e755a98 Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-05-24 13:53:36 +02:00
67a582b4a2 Flatten generic function types 2023-05-24 13:53:23 +02:00
034a398515 Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-05-22 14:40:50 +02:00
58a72b0286 new file: resources/AllgemeinTest/StreamTest.jav
modified:   src/test/java/AllgemeinTest.java
2023-05-22 14:40:35 +02:00
677d68428d Merge branch 'fixPlugin' into targetBytecode 2023-05-16 14:52:45 +02:00
d2ef5ccb24 Update plugin installation 2023-05-16 14:52:31 +02:00
66944cf3c1 Recursively collect generics for FunN 2023-05-15 16:52:20 +02:00
9d9a1f6614 modified: src/test/java/AllgemeinTest.java
Twice in Allgemeintest reingenommen
2023-05-10 13:27:13 +02:00
0b33948945 modified: resources/insertGenericsJav/TestContraVariant.jav 2023-05-09 14:36:07 +02:00
5e1631439a modified: resources/insertGenericsJav/TestContraVariant.jav 2023-05-09 14:28:32 +02:00
8992260264 TestContraVariant 2023-05-09 12:18:12 +02:00
f8f76e9f7d WIP 2023-05-08 13:32:39 +02:00
52b7040337 Break statement in AST eingefügt 2023-04-01 16:27:55 +02:00
4986fd0f31 Merge branch 'bigRefactoring' into patternMatching 2023-04-01 15:41:36 +02:00
dc8578632c Records in AST aufgenommen 2023-04-01 15:40:12 +02:00
9a780127c0 Grammatik um recordPattern erweitert 2023-03-24 04:44:52 +01:00
0311f5ed77 Test Case für geschachtelte Pattern erstellt 2023-03-22 18:42:13 +01:00
b1b7c23166 Switch statement in GatherNames für verschieden Deklarations-Typen 2023-03-22 18:41:59 +01:00
0ca32ca6a7 modified: README_aktuelle_Branches 2023-03-21 10:35:23 +01:00
1ab0f42fd1 Bug fixes für GeneralParserTest und Mehrfachaufrufe des Parsers entfernt 2023-03-20 22:07:47 +01:00
856d343ed3 Consider public and standard constructors ones 2023-03-20 19:09:47 +01:00
2c7037708b Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2023-03-20 18:26:47 +01:00
78a898db37 Bug fixes für Tests in 'parser' 2023-03-20 03:03:37 +01:00
aeb4b18069 delete old parser files 2023-03-15 19:26:23 +01:00
79c82c122a fix for new-Statement generation. Change FieldInitialization Test 2023-03-15 19:25:35 +01:00
27ee00b069 Changed Parser Test 2023-03-15 19:07:41 +01:00
af28e033a2 Merge branch 'patternMatching' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into patternMatching 2023-03-15 18:49:34 +01:00
761e693984 Set --enable-preview for maven compile and test 2023-03-15 18:49:29 +01:00
d6c22a60bc 'Illegal fallthrough' entfernt 2023-03-15 18:44:00 +01:00
a8012a3ea6 'Illegal fallthrough' entfernt 2023-03-15 18:41:04 +01:00
31ee90b3ff Umwandlung von Interfaces implementiert 2023-03-15 05:14:43 +01:00
96d19efa5d Umwandlung von Konstruktoren in eigener Methode 2023-03-12 21:50:53 +01:00
1919e34eed Debugging komplett für test parser/AntlrTest.jav 2023-03-10 20:30:15 +01:00
043dda660b Fehler im neuen SyntaxTreeGenerator beseitigt und TODOs eingefügt 2023-03-10 07:48:38 +01:00
8c6a614157 Merge remote-tracking branch 'origin/bigRefactoring' into patternMatching 2023-03-08 06:42:08 +01:00
09cc88062e StatementGenerator fertiggestellt 2023-03-08 06:35:55 +01:00
2197e09307 Merge branch 'targetBytecode' into bigRefactoring 2023-03-01 16:34:14 +01:00
d362858184 Umbau des StatementGenerators fortgeführt 2023-03-01 06:49:59 +01:00
c118c05bb2 Umwandlung von Methodenaufrufen implementiert 2023-02-26 21:04:51 +01:00
aa5f79257e Antlr labels für ExpressionContext eingeführt, um StatementGenerator weiterzuentwickeln 2023-02-22 22:43:25 +01:00
f282d7a212 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2023-02-21 14:51:08 +01:00
4c685a9ed9 Merge branch 'targetBytecode' into bigRefactoring 2023-02-21 14:48:28 +01:00
55636436d2 Fix Antlr Version 2023-02-14 18:03:12 +01:00
5981a9362c Fix console interface 2023-02-14 13:42:56 +01:00
c38bf658fc Anpassung Statementexpression an Java17-Grammatik begonnen 2023-02-13 08:16:16 +01:00
0e981ce95c convert(StatementContext) Implementierung fortgesetzt 2023-02-12 07:51:31 +01:00
40d0d6b63e TypeGenerator für Java17 Grammatik angepasst 2023-02-05 09:16:59 +01:00
a77970b5e7 TypeGenerator für Rework vorbereitet 2023-02-03 07:58:06 +01:00
ca327375c8 Konvertierung von Methoden begonnen 2023-02-02 06:38:30 +01:00
4f4ca50c75 Implementierung ConvertClass-Methode in ASTGen fortgesetzt 2023-01-24 08:14:14 +01:00
1cf23bec90 Implementierung neuer ASTGen fortgesetzt 2023-01-21 05:35:15 +01:00
3bdc3b764d Merge remote-tracking branch 'origin/bigRefactoring' into patternMatching 2023-01-20 06:16:25 +01:00
a13294edf4 Visitor Ansatz verworfen, STG in ASTGen neu aufsetzen 2023-01-20 06:13:38 +01:00
a85b60b95f ASTGen auf basis von antlr visitor 2023-01-20 02:54:59 +01:00
def76724b5 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2023-01-17 19:30:47 +01:00
eb5a339f56 Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2023-01-17 17:42:58 +01:00
d6b25bc76e Add jar-building to pom-file. Fix ConsoleInterface 2023-01-17 17:42:32 +01:00
c78a148766 Alternativ-labels in grammatik & neuen ast-generator auf basis von antlr visitor 2023-01-17 06:38:00 +01:00
cb564dc436 Beginn anpassung SyntaxTreeGenerator an neue Grammatik 2023-01-17 06:37:07 +01:00
6d52949215 Anpassungen der Grammatikregeln übernommen 2023-01-17 06:34:39 +01:00
b0bec83900 workaround für java 17/19 probleme & paket ergänzt 2023-01-17 06:28:19 +01:00
0ee3117d6e Test für Java17 Grammatik-Konstrukte hinzugefügt 2023-01-11 17:43:08 +01:00
96142339e0 deleted: src/test/java/targetast/Fun1$$.java 2023-01-10 16:41:44 +01:00
3cf076fd82 deleted: Studienarbeiten/.new.Studienar
renamed:    Studienarbeiten/S2003_Felix_Reichenbach.pdf -> Studienarbeiten_Bachelorarbeiten/S2003_Felix_Reichenbach.pdf
	renamed:    Studienarbeiten/S2004_Markus_Haas.pdf -> Studienarbeiten_Bachelorarbeiten/S2004_Markus_Haas.pdf
	renamed:    Studienarbeiten/S2004_Thomas_Ott.pdf -> Studienarbeiten_Bachelorarbeiten/S2004_Thomas_Ott.pdf
	renamed:    Studienarbeiten/S2005_Joerg_Baeuerle.pdf -> Studienarbeiten_Bachelorarbeiten/S2005_Joerg_Baeuerle.pdf
	renamed:    Studienarbeiten/S2005_Markus_Melzer.pdf -> Studienarbeiten_Bachelorarbeiten/S2005_Markus_Melzer.pdf
	renamed:    Studienarbeiten/S2006_Juergen_Schmiing.pdf -> Studienarbeiten_Bachelorarbeiten/S2006_Juergen_Schmiing.pdf
	renamed:    Studienarbeiten/S2006_Thomas_Hornberger.pdf -> Studienarbeiten_Bachelorarbeiten/S2006_Thomas_Hornberger.pdf
	renamed:    Studienarbeiten/S2006_Timo_Holzherr.pdf -> Studienarbeiten_Bachelorarbeiten/S2006_Timo_Holzherr.pdf
	renamed:    Studienarbeiten/S2007_Achim_Burger.pdf -> Studienarbeiten_Bachelorarbeiten/S2007_Achim_Burger.pdf
	renamed:    Studienarbeiten/S2007_Arne_Luedtke.pdf -> Studienarbeiten_Bachelorarbeiten/S2007_Arne_Luedtke.pdf
	renamed:    Studienarbeiten/S2008_Christian_Stresing.pdf -> Studienarbeiten_Bachelorarbeiten/S2008_Christian_Stresing.pdf
	renamed:    Studienarbeiten/S2008_Thorsten_Hake.pdf -> Studienarbeiten_Bachelorarbeiten/S2008_Thorsten_Hake.pdf
	renamed:    Studienarbeiten/S2008_Thorsten_Hake_Christian_Stresing_Eclipse_Plugin.pdf -> Studienarbeiten_Bachelorarbeiten/S2008_Thorsten_Hake_Christian_Stresing_Eclipse_Plugin.pdf
	renamed:    Studienarbeiten/S2008_Thorsten_Hake_Christian_Stresing_Testing.pdf -> Studienarbeiten_Bachelorarbeiten/S2008_Thorsten_Hake_Christian_Stresing_Testing.pdf
	renamed:    Studienarbeiten/S2016_Enrico_Schroedter.pdf -> Studienarbeiten_Bachelorarbeiten/S2016_Enrico_Schroedter.pdf
	renamed:    Studienarbeiten/S2016_Florian_Steurer.pdf -> Studienarbeiten_Bachelorarbeiten/S2016_Florian_Steurer.pdf
	renamed:    Studienarbeiten/S2017_Jan-Elric_Neumann.pdf -> Studienarbeiten_Bachelorarbeiten/S2017_Jan-Elric_Neumann.pdf
	renamed:    Studienarbeiten/S2021_Etienne_Zink.pdf -> Studienarbeiten_Bachelorarbeiten/S2021_Etienne_Zink.pdf
	new file:   Studienarbeiten_Bachelorarbeiten/S2022_Daniel_Holle.pdf
2023-01-10 14:29:59 +01:00
2e4cd0384f Merge branch 'bigRefactoring' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into bigRefactoring 2022-12-12 14:10:31 +01:00
a7dc943692 Merge remote-tracking branch 'origin/bigRefactoring' into patternMatching 2022-12-04 21:20:09 +01:00
4b6d69d748 Antlr-Grammatik angepasst, um syntaxtree-Klassen zu matchen 2022-12-04 21:17:39 +01:00
1145f010c6 Referenzen auf Parser-Klassen von Java8 zu Java17 umbenannt 2022-12-04 21:15:36 +01:00
d89e414ca7 Alte Java8- durch neue Java17-Grammatik ersetzt 2022-12-03 22:54:22 +01:00
58cd490639 rootDirectory GeneralParserTest, dep. Klasse JavaTXParser 2022-12-01 22:20:39 +01:00
f444003aee Merge branch 'patternMatching' into bigRefactoring 2022-11-28 13:53:39 +01:00
df3e2b55f9 Grammatik-Regeln für "instanceof-PatternMatching" eingefügt 2022-11-24 22:33:23 +01:00
09ac2fc5cf Neue Grammatik-Regeln und daraus resultierende bugfixes 2022-11-22 21:44:13 +01:00
301 changed files with 7787 additions and 8827 deletions
.gitignoreREADME_aktuelle_Branches
doc
pom.xml
resources
AllgemeinTest
bytecode
insertGenerics
insertGenericsJav
javFiles
packageTest
syntaxtreegenerator
testBytecode
generatedBC
public
src
main
test

2
.gitignore vendored

@ -19,7 +19,9 @@ bin
.DS_Store
.project
.settings/
.vscode/
/target/
settings.json
#
manually/

@ -9,3 +9,6 @@ Stand: 24.5.21
simplifyRes, Basis fuer Plugin, sollte auf Plugin gemerged werden, noch keine Packages, Michael
strucTypesNew, Struturelle Typen, alte Basis, arbeite derzeit niemand
Stand 21.2.23
unif23: Testbranch fuer Tagungseinrecihung Unif23

Binary file not shown.

Binary file not shown.

Binary file not shown.

24
doc/pluginBau.md Normal file

@ -0,0 +1,24 @@
## Bau und installation des Eclipse plugins
1. Zunächst muss der JavaTX Compiler gebaut werden. Dafür wird im Rootverzeichnis des JavaTX Compilers
`mvn install` ausgeführt. Falls die Tests nicht laufen kann das mit `-DskipTests` beseitigt werden.
2. Dann muss das Plugin gebaut werden. Dafür muss ebenfalls `mvn install` ausgeführt werden, im Rootverzeichnis des Plugins.
Falls es dabei zu Fehlern mit der Java-Version kommen sollte muss man in ~\.mavenrc oder \~.mavenrc_pre.bat die Zeile
`set JAVA_HOME=<JDK-19-Pfad>` (Windows) oder `JAVA_HOME="<JDK-19-Pfad>"` (Linux) einfügen. Damit sollte maven korrekt konfiguriert sein.
3. Als letzter Schritt muss nun das Plugin in Eclipse geladen werden. Wichtig dabei ist, dass Eclipse selber mit Java 19 startet.
Dafür kann die Datei `eclipse.ini` angepasst werden die im Installationsverzeichnis von Eclipse vorhanden ist. Hier müssen zwei Zeilen
eingetragen werden:
```
-vm
<JDK-19-Pfad>/javaw.exe
```
Ganz am Anfang der Datei
und unter -vmargs die Option `--enable-preview`
4. Das gebaute Plugin befindet sich unter `JavaCompilerPlugin\releng\JavaCompilerPlugin.Update\target`
Um dieses Plugin in Eclipse laden zu können muss den Dialog `Help > Install new Software` öffnen. Oben rechts steht die Option `Add...`
Im sich öffnenden Dialog muss man `Archive` anklicken und dort das Zip Archiv aus dem Oben genannten Pfad einfügen. Nun mit Add den Dialog schließen.
Als letztes muss in der Liste oben der Eintrag `JavaCompilerPlugin.Update` ausgewählt werden. Hier sollte nun unten das Plugin angezeigt werden.
Einfach auswählen und unten Next drücken. Damit sollte der Vorgang abgeschlossen sein.

32
pom.xml

@ -42,7 +42,7 @@ http://maven.apache.org/maven-v4_0_0.xsd">
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>7.0</version>
<version>9.5</version>
</dependency>
</dependencies>
@ -51,13 +51,28 @@ http://maven.apache.org/maven-v4_0_0.xsd">
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<version>3.11.0</version>
<configuration>
<compilerArgs>--enable-preview</compilerArgs>
<source>19</source>
<target>19</target>
<<<<<<< HEAD
<source>20</source>
<target>20</target>
=======
<release>20</release>
>>>>>>> patternMatching
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<argLine>--enable-preview</argLine>
<excludes>
<exclude>**/JavaTXCompilerTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
@ -112,8 +127,11 @@ http://maven.apache.org/maven-v4_0_0.xsd">
</repository>
</repositories>
<properties>
<maven.compiler.source>19</maven.compiler.source>
<maven.compiler.target>19</maven.compiler.target>
<<<<<<< HEAD
<maven.compiler.source>20</maven.compiler.source>
<maven.compiler.target>20</maven.compiler.target>
=======
>>>>>>> patternMatching
<mainClass>de.dhbwstuttgart.core.ConsoleInterface</mainClass>
</properties>
<distributionManagement>
@ -123,4 +141,4 @@ http://maven.apache.org/maven-v4_0_0.xsd">
<url>file:///${project.basedir}/maven-repository/</url>
</repository>
</distributionManagement>
</project>
</project>

@ -1,13 +0,0 @@
class Box<A>{
void m(A a){}
}
class B { }
class Box_Main extends B {
m(b) {
b.m(new Box_Main());
b.m(new B());
}
}

@ -1,13 +0,0 @@
class Box<A>{
A f;
}
class B { }
class Box_Main extends B {//Fehler Bugzilla Bug 230
m(b) {
b.f = new Box_Main();
b.f = new B();
}
}

@ -1,12 +0,0 @@
import java.util.Vector;
import java.util.List;
import java.lang.Integer;
class FCTest1 extends Vector<Vector<Integer>> {
fc1() {
var y;
var z;
y.add(z);
return y;
}
}

@ -1,11 +0,0 @@
import java.util.Vector;
import java.util.List;
import java.lang.Integer;
class FCTest2 extends Vector<Vector<Integer>> {
fc2(y) {
var z;
y.add(z);
return y;
}
}

@ -1,19 +0,0 @@
import java.util.Vector;
import java.lang.Integer;
class FCTest3 extends Pair<Vector<Integer>, Vector<Integer>> {
fc2(x) {
x.snd().addElement(2);
}
fc2a() {
var y;
y.snd().addElement(2);
return y;
}
}

@ -1,10 +0,0 @@
import java.lang.Integer;
import java.util.Vector;
public class GenTest {
main(x) {
var v = new Vector();
return 1 + v.elementAt(0);
}
}

@ -1,9 +0,0 @@
class Generics {
a;
id(b) { return b; }
setA(x) {
a = x;
return a;
}
m(x,y) { x = id(y); }
}

@ -0,0 +1,43 @@
class Pair<T, U> {
T x;
U y;
public Pair() { }
public Pair(T x, U y) {
this.x = x;
this.y = y;
}
public T fst () {
return x;
}
public U snd () {
return y;
}
}
public class Iteration {
id(x) {
return x;
}
m1(x, y) {
var help;
help = m2(x, y);
var y2 = help.snd();
var x2 = id(x);
return new Pair<>(x2,y2);
}
m2(x,y) {
var help = m1(x, y);
var x2 = help.fst();
var y2 = id(y);
return new Pair<>(x2, y2);
}
}

@ -1,7 +0,0 @@
import java.util.List;
class M {
void m(p, p2){
new addList().addLists(p, p2);
}
}

@ -1,9 +0,0 @@
import java.util.Stack;
import java.util.Vector;
class OverloadingMain {
mmMain(x) { var y; return new O1().mm(y); }
}

@ -1,20 +0,0 @@
import java.lang.Integer;
public class Overloading_Generics {
id1 (x) { return x; }
//Integer id (Integer x) { return x; }
}
class Overloading_Generics1 {
main(x) {
var olg = new Overloading_Generics();
return olg.id1(1);
}
}

@ -1,25 +0,0 @@
import java.util.Vector;
import java.util.Stack;
class OverrideMain {
ovrMain(x) {
var overide;
overide.ovr(x);
}
}
/*
[
[(TPH L = java.util.Stack<TPH FTM>), (TPH N = java.lang.String), (TPH M = ? extends Override2), (TPH FTN, TPH FTM), (TPH K = void)],
[(TPH FTO, TPH FTP), (TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH L = java.util.Stack<TPH FTP>), (TPH K = void)],
[(TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH K = void), (TPH FTR, TPH FTQ), (TPH L = java.util.Vector<TPH FTQ>)],
[(TPH FTT, TPH FTS), (TPH M = ? extends Override2), (TPH L = java.util.Vector<TPH FTS>), (TPH K = void), (TPH N = java.lang.String)],
[(TPH L = java.util.Vector<TPH FTV>), (TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH FTU, TPH FTV), (TPH K = void)],
[(TPH FTX, TPH FTW), (TPH M = ? extends Override2), (TPH L = java.util.Vector<TPH FTW>), (TPH K = void), (TPH N = java.lang.String)],
[(TPH M = ? extends Override2), (TPH L = java.util.Stack<TPH FTZ>), (TPH K = void), (TPH FTY, TPH FTZ), (TPH N = java.lang.String)],
[(TPH FUB, TPH FUA), (TPH K = void), (TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH L = java.util.Vector<TPH FUA>)],
[(TPH N = java.lang.String), (TPH L = java.util.Vector<TPH FUC>), (TPH FUD, TPH FUC), (TPH M = ? extends Override2), (TPH K = void)],
[(TPH N = java.lang.String), (TPH FUF, TPH FUE), (TPH M = ? extends Override2), (TPH K = void), (TPH L = java.util.Vector<TPH FUE>)]]
[[(TPH M = ? extends Override2), (TPH MNX, TPH MNY), (TPH N = java.lang.String), (TPH K = void), (TPH L = java.util.Stack<TPH MNY>)], [(TPH L = java.util.Stack<TPH MOC>), (TPH N = java.lang.String), (TPH M = ? extends Override2), (TPH K = void), (TPH MOB, TPH MOC)], [(TPH M = ? extends Override2), (TPH N = java.lang.String), (TPH MNZ, TPH MOA), (TPH L = java.util.Vector<TPH MOA>), (TPH K = void)], [(TPH L = java.util.Vector<TPH MOE>), (TPH K = void), (TPH M = ? extends Override2), (TPH MOD, TPH MOE), (TPH N = java.lang.String)], [(TPH M = ? extends Override2), (TPH K = void), (TPH N = java.lang.String), (TPH MOF, TPH MOG), (TPH L = java.util.Stack<TPH MOG>)], [(TPH L = java.util.Vector<TPH MOI>), (TPH K = void), (TPH MOH, TPH MOI), (TPH M = ? extends Override2), (TPH N = java.lang.String)], [(TPH L = java.util.Vector<TPH MOK>), (TPH MOJ, TPH MOK), (TPH K = void), (TPH M = ? extends Override2), (TPH N = java.lang.String)], [(TPH MOL, TPH MOM), (TPH L = java.util.Stack<TPH MOM>), (TPH M = ? extends Override2), (TPH K = void), (TPH N = java.lang.String)], [(TPH L = java.util.Vector<TPH MOO>), (TPH MON, TPH MOO), (TPH N = java.lang.String), (TPH K = void), (TPH M = ? extends Override2)], [(TPH L = java.util.Stack<TPH MOP>), (TPH N = java.lang.String), (TPH M = ? extends Override2), (TPH MOQ, TPH MOP), (TPH K = void)]]
*/

@ -1,11 +0,0 @@
import java.util.Vector;
import java.util.Stack;
class OverrideMainRet {
ovrMain() {
var overide;
var x;
overide.ovr(x);
return x;
}
}

@ -13,7 +13,7 @@ class Pair<U, T> {
return ret;
}
eq(a, b) {
b = a;
return a == b;

@ -1,18 +0,0 @@
class Pair<T, U> {
T x;
U y;
public Pair() { }
public Pair(T x, U y) {
this.x = x;
this.y = y;
}
public T fst () {
return x;
}
public U snd () {
return y;
}
}

@ -1,19 +0,0 @@
import java.util.Vector;
import java.util.Stack;
class Put {
putElement(ele, v) {
v.addElement(ele);
}
putElement(ele, s) {
s.push(ele);
}
main(ele, x) {
putElement(ele, x);
}
}

@ -0,0 +1,14 @@
import java.util.stream.Stream;
import java.util.Vector;
import java.lang.Integer;
class StreamTest {
m() {
var vecInt = new Vector<Integer>();
var strInt = vecInt.stream();
var dup = x -> x*2;
strInt.map(dup);
return dup;
}
}

@ -1,4 +0,0 @@
class Test {
a;
Test b;
}

@ -1,12 +0,0 @@
import java.util.ArrayList;
class TestSubTypless {
m(a){
var l = new ArrayList<>();
l.add(a);
return m2(l).get(0);
}
m2(a){
return m(a);
}
}

@ -1,3 +0,0 @@
class Twice {
twice = f -> x -> f.apply(f.apply(x));
}

@ -1,5 +0,0 @@
class Var {
var(x) { var y; }
}

@ -1,15 +0,0 @@
import java.util.Vector;
import java.lang.Integer;
public class VectorConstAdd {
vectorAdd(v1) {
var i = 0;
var erg = new Vector<>();
while (i < v1.size()) {
erg.addElement(v1.elementAt(i) + 1);
i++;
}
return erg;
}
}

@ -1,9 +0,0 @@
import java.util.Vector;
class VectorNotObject {
vectorAddAll(v1, v2) {
v1.addAll(v2);
return v1;
}
}

@ -1,16 +0,0 @@
import java.util.Vector;
import java.lang.Integer;
import java.lang.String;
class WildcardCaptureConversionTest {
m(x, y ,z) {
x = new Vector<Integer>();
y = new Vector<String>();
x.add(1);
y.add("2");
//Integer i = x.elementAt(0);
//String s = y.elementAt(0);
return z.vectorAddAll(x, y);
}
}

@ -1,8 +0,0 @@
class Wildcard_Andi {
Test<? extends A> ex = new Test<>();
Test<? super A> sup = new Test<>();
}

@ -1,8 +0,0 @@
import java.util.List;
class addList {
addLists(a, b){
a.add(b.get(0));
b.add(a.get(0));
}
}

@ -1,22 +0,0 @@
import java.util.List;
import java.lang.Integer;
import java.lang.Object;
import java.lang.Boolean;
class wildcardPair {
make(l) {
var p = new Pair(l.get(0), l.get(1));
return p;
}
//<X>Boolean compare(Pair<X, X> x) { return true; }
void m(l) {
Object o = l.get(0);
//Pair<? extends Object, ? extends Object> p;
//List<?> b;
//this.compare(p); //1, type incorrect
make(l);
//this.compare(this.make(b)); //2, OK
}
}

Binary file not shown.

@ -1,5 +1,5 @@
import java.lang.Integer;
//import java.lang.Double;
import java.lang.Double;
public class Fac {

@ -17,7 +17,7 @@ public class Faculty {
public getFact(x) {
public getFact(java.lang.Integer x) {
return fact.apply(x);
}
}

@ -1,4 +1,4 @@
public class Id {
public class Id <FAU> {
// a;
// id(b){
// return b;

@ -1,32 +1,15 @@
import java.lang.Double;
import java.lang.String;
import java.lang.Integer;
import java.lang.Double;
import java.lang.Boolean;
//import java.util.Vector;
import java.lang.Long;
public class OL {
java.lang.Double m(java.lang.Double x) { return x + x; }
java.lang.Integer m(java.lang.Integer x) { return x + x; }
java.lang.String m(java.lang.String x) { return x + x; }
java.lang.Boolean m(Boolean x) { return x; }
// if the class contains just this method, then correct BC will be generated.
// But if another methods are contained then the generated BC is not correct
// m(x) {
// //x.add(1);
// x.addAll(x);
// return x;
// }
class OL {
m (x) { return x + x; }
}
public class OLMain {
main(x) {
class OLMain {
main(x) {
var ol;
ol = new OL();
return ol.m(x);
}
ol = new OL();
return ol.m(x);
}
}

@ -1,8 +1,8 @@
public class Tph2 {
id = x->x;
id3 (x) {
return id.apply(x);
}
id = x->x;
id3 (x) {
return id.apply(x);
}
/*
m(a,b){

@ -0,0 +1,38 @@
public class TestContraVariant {
main(x, y) {
var y2 = m(x, y);
var y3 = y2.snd();
var z;
y3 = z;
return new Pair<>(x, z);
}
m(x, y) {
var x2 = main(x, y);
var x3 = x2.fst();
var z;
x3 = z;
return new Pair<>(z, y);
}
}
class Pair<T, U> {
public T x;
public U y;
public Pair() {
}
public Pair(T var1, U var2) {
x = var1;
y = var2;
}
public T fst() {
return x;
}
public U snd() {
return y;
}
}

@ -3,7 +3,7 @@ import java.util.Vector;
public class TestVector {
m(v, w) {
w.addElement(id(v.elementAt(0)));
w.addElement(id(v.elementAt(0)));
}
id(x) {

Some files were not shown because too many files have changed in this diff Show More