Compare commits

...

202 Commits

Author SHA1 Message Date
Ruben
0d572ed9b6 feat: changes in Grammar and Parser so typeless Recs get recognised
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 6m20s
2024-06-06 12:16:28 +02:00
Ruben
ea217d16d5 Revert "feat: changes in Grammar and Parser so typeless Recs get recognised"
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 6m35s
This reverts commit 7650813bb7.
2024-06-06 12:07:32 +02:00
Ruben
7650813bb7 feat: changes in Grammar and Parser so typeless Recs get recognised
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Has been cancelled
2024-06-06 12:06:28 +02:00
4880527d4d Give an exception if a method has been duplicated
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 9m6s
2024-05-27 15:51:48 +02:00
50f2a29e1e Merge branch 'targetBytecode' of https://gitea.hb.dhbw-stuttgart.de/JavaTX/JavaCompilerCore into targetBytecode
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 8m1s
2024-05-27 12:17:24 +02:00
99f219de3b Work on #338, partially fixed 2024-05-27 12:14:00 +02:00
12bb613eb0 Fix test cases
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 7m42s
2024-05-24 12:46:26 +02:00
141e1cbc94 Make wildcard imports work again #330
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 7m6s
2024-05-23 11:39:56 +02:00
julian
5b4ea5a0c5 fix #327 and add support for glob syntax in classpath input
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 5m37s
2024-05-22 23:47:50 +02:00
b824680508 Fix #335
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 6m34s
2024-05-22 12:55:47 +02:00
295bf079b9 Add continue and do-while, close #331
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 6m15s
2024-05-21 12:14:12 +02:00
974582f7e5 Fix #333
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 5m57s
2024-05-17 10:49:45 +02:00
2ded0c9044 Add public
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 6m27s
2024-05-15 16:46:15 +02:00
pl@gohorb.ba-horb.de
c3343959c5 modified: ../resources/AllgemeinTest/Box.jav
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 6m43s
modified:   ../resources/bytecode/javFiles/Box.jav
	modified:   ../src/test/java/AllgemeinTest.java
	modified:   ../src/test/java/TestComplete.java
2024-05-15 14:26:42 +02:00
pl@gohorb.ba-horb.de
39f04b1a1b Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2024-05-14 22:53:52 +02:00
Pluemicke Martin
db01b0c8dd new file: resources/AllgemeinTest/Box.jav 2024-05-14 22:50:20 +02:00
662756ac18 Merge branch 'targetBytecode' of https://gitea.hb.dhbw-stuttgart.de/JavaTX/JavaCompilerCore into targetBytecode
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 5m26s
2024-05-10 16:51:10 +02:00
b0bf41968e Bug325 2024-05-10 16:50:06 +02:00
pl@gohorb.ba-horb.de
2221b559ca Implementierungen von Interfaces eingefuegt und Overriding ersetzt durch implementierung
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 6m2s
modified:   ../src/main/java/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java

Overriding ersetzt durch implementierung (Umbennennung)
	modified:   ../resources/bytecode/javFiles/Matrix.jav
	modified:   ../src/main/java/de/dhbwstuttgart/syntaxtree/Method.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/constraints/Constraint.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/constraints/ConstraintSet.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
2024-05-10 14:16:23 +02:00
pl@gohorb.ba-horb.de
021b7ec9fe Fehler vom vorigen korriert Commit
modified:   ../resources/bytecode/javFiles/Matrix.jav
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/constraints/Constraint.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/constraints/ConstraintSet.java
	modified:   ../src/test/java/TestComplete.java
2024-05-08 09:07:22 +02:00
pl@gohorb.ba-horb.de
154d4823e4 isOverridden eingefuegt.
Problem beim Konvertioeren
	modified:   ../src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
	modified:   ../src/main/java/de/dhbwstuttgart/syntaxtree/Method.java
	modified:   ../src/main/java/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/assumptions/MethodAssumption.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/constraints/Constraint.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/constraints/ConstraintSet.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
2024-05-08 00:14:21 +02:00
pl@gohorb.ba-horb.de
71dfe5d9e1 Bei diesem und vorigen Commit wurde der Bug #328
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 11m55s
#328
geloest.

1. src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
in der Methode copute wurden die methodSignatureConstraints der bereits zu Beginn
aufegloesten einer Oder Constraints in die Methodconstraints der Unifikation geschrieben
2. Elementtyp der linken Seiten der methodSignatureConstraints wurden von RefTypeOrTPHOrWildcardOrGeneric auf TypePlaceholder geaendert, weil dort nur TypePlaceholder geaendert.
3. src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
in der Methode prepareBlock wurde der Typ des Rückgabewerts des supercalls von Void auf eine
Freshtpevar gesetzt.
4. src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
in der unify2-Methode wurde am Ende der Aufruf der Substitution nach Hinzufuegen der
Methodconstraints auskommentiert -> hat zu nicht geloesten Constraints gefuehrt.

	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/test/java/TestComplete.java
2024-05-02 16:33:37 +02:00
pl@gohorb.ba-horb.de
58110c474a mathStrucInteger.jav funktioniert gerade nicht
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 12m21s
modified:   resources/bytecode/javFiles/Matrix.jav
	modified:   src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java
	modified:   src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
	modified:   src/main/java/de/dhbwstuttgart/syntaxtree/statement/MethodCall.java
	modified:   src/main/java/de/dhbwstuttgart/syntaxtree/statement/NewClass.java
	modified:   src/main/java/de/dhbwstuttgart/syntaxtree/statement/SuperCall.java
	modified:   src/main/java/de/dhbwstuttgart/syntaxtree/statement/ThisCall.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/constraints/Constraint.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/model/ReferenceType.java
2024-05-02 00:13:45 +02:00
df2ec4b1ba Fix #326, convert captures to correct types
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m9s
2024-04-30 16:55:40 +02:00
2c66a1d6e6 add class file
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m58s
2024-04-29 10:27:23 +02:00
c76ee355d8 Add bug for #328
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Has been cancelled
2024-04-29 10:25:01 +02:00
a5c314c5c5 Fix #328
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m50s
2024-04-28 19:25:20 +02:00
cba35a4bec Don't load source files twice
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m51s
2024-04-27 23:08:15 +02:00
b774281cbb Add Ternary, fix #324
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m48s
2024-04-22 12:17:53 +02:00
9358130468 Fix package weirdness? See #322
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 3m3s
2024-04-18 11:51:08 +02:00
708aa64283 Fix current directory not being added to path
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m50s
2024-04-18 10:31:12 +02:00
c21e5202d6 Fix #323
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 3m14s
2024-04-18 10:20:35 +02:00
b3bd5cde10 Fix tests
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 3m58s
2024-04-15 16:44:34 +02:00
df78937ef3 Fix test case a bit
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m35s
2024-04-15 16:18:25 +02:00
7fb4824f8d Add modulo, fix #319
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m53s
2024-04-12 15:40:22 +02:00
e0d71a6003 fix console
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m37s
2024-04-12 14:17:15 +02:00
49803385cf Fix optional parameters
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m44s
2024-04-12 13:58:11 +02:00
39d02f792c Deal with multiple source files properly, don't throw all the constraints together
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m21s
2024-04-12 10:48:13 +02:00
4fc78f494c More poking around
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 3m1s
2024-04-10 10:22:34 +02:00
b752219d8c Throw exception if class doesn't exist
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m11s
2024-04-10 10:03:59 +02:00
ec890356e4 Don't trim stack trace because some tests randomly fail and we need to know why
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m59s
2024-04-10 09:58:01 +02:00
d405b0c3a2 Merge branch 'targetBytecode' of ssh://gitea.hb.dhbw-stuttgart.de:2222/JavaTX/JavaCompilerCore into targetBytecode
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m51s
2024-04-10 09:42:47 +02:00
6c8657b7a8 Work on #308 2024-04-10 09:42:31 +02:00
pl@gohorb.ba-horb.de
bcce4cee19 modified: src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntacticSugar.java
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m21s
Im Visitor ReturnFinder wuder nicht beruecksichtigt, dass auch in einem Lambda-Ausdruck ein Reurn stehen kann, welchen die umgebenden Block nicht beendet.
2024-04-09 18:25:26 +02:00
e6cd4038e2 Fix bytecode error when calling interface functions
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m48s
2024-04-09 15:52:44 +02:00
e50f941b79 Merge branch 'targetBytecode' of ssh://gitea.hb.dhbw-stuttgart.de:2222/JavaTX/JavaCompilerCore into targetBytecode
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m33s
2024-04-09 14:59:16 +02:00
cb7d0e22cc Fix #314 2024-04-09 14:58:43 +02:00
pl@gohorb.ba-horb.de
0d5be89310 modified: ../src/main/java/de/dhbwstuttgart/typeinference/unify/Match.java
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m50s
modified:   ../src/test/java/TestComplete.java
2024-04-09 01:50:42 +02:00
0b7f07108f Fix #313
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m43s
2024-04-08 14:25:41 +02:00
6b0816c1c4 Add test for #309
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m47s
2024-04-08 14:02:57 +02:00
f66b9099f3 Fix #311
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m55s
2024-04-08 13:51:49 +02:00
da74898f9d Fix #312
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m45s
2024-04-08 13:18:27 +02:00
46a7f61234 Fix #310
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m49s
2024-04-08 11:52:52 +02:00
e59accf7ee Fix #308
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Has been cancelled
2024-04-08 11:40:46 +02:00
pl@gohorb.ba-horb.de
4b110244f2 new file: ../../AllgemeinTest/List.jav
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m46s
2024-04-07 17:31:05 +02:00
pl@gohorb.ba-horb.de
e37040f367 Bug 307 gefixt
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m51s
Changes to be committed:
	modified:   src/main/java/de/dhbwstuttgart/typeinference/typeAlgo/TYPEStmt.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/test/java/TestComplete.java
2024-04-03 00:11:01 +02:00
6850a8fa21 Decouple unify from the rest of the code
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m22s
2024-03-28 10:35:34 +01:00
877e5ed38a Reversing alone would disturb the parameters (#298)
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 1m2s
2024-03-27 14:52:15 +01:00
82b4450857 Fix 298 for real this time?
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 1m3s
2024-03-27 14:39:43 +01:00
b70e435120 Work on issue
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 59s
2024-03-27 12:21:57 +01:00
3b14cd609f Revert "Get rid of mutable state, hopefully fix #307"
This reverts commit bc61fc2e1d.
2024-03-27 09:57:21 +01:00
8fdfbf875b Fix #298 maybe?
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m42s
2024-03-26 17:31:48 +01:00
bc61fc2e1d Get rid of mutable state, hopefully fix #307
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m57s
2024-03-26 16:54:24 +01:00
62f2e05f35 Add test case for #307
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m37s
2024-03-26 11:04:03 +01:00
606ce8b82d Implement AND/OR/XOR, fix #305
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m26s
2024-03-26 10:54:32 +01:00
c84befae51 Add Negation operator (fixes #304)
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m41s
2024-03-25 17:05:20 +01:00
7f3c1686ec Fix #303
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m37s
2024-03-25 15:10:47 +01:00
43da2ffbdc Fix #302
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m47s
2024-03-25 14:49:18 +01:00
9472b5c86f Types are weird in this one
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m23s
2024-03-25 13:51:56 +01:00
7cb0e9dbb7 Taking the super methods parameters should only happen for the types, fix #306
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m23s
2024-03-25 13:43:30 +01:00
e07521d9b6 Fix #298
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m33s
2024-03-25 12:14:03 +01:00
c2ee12397f Work on issue
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m53s
2024-03-22 14:54:23 +01:00
e6321ff8bc Fix gtvs being strange, #301 2024-03-21 17:40:42 +01:00
786e0a7a23 Fix #300 and also call private methods correctly
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m35s
2024-03-21 11:49:16 +01:00
1c63321b30 Fix #294
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m35s
2024-03-20 14:37:15 +01:00
1f74345324 Upload test for #298
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m16s
2024-03-19 15:19:57 +01:00
518f58e08f Maybe null here was in fact right?
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m43s
2024-03-18 13:40:37 +01:00
0acfe6c0d4 Implement ThisCall (fix #295)
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Has been cancelled
2024-03-18 13:29:53 +01:00
c07d4d36e9 Fix wrong type conversion, see #297
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m51s
2024-03-18 12:14:03 +01:00
01e374eadd Fix #296
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m29s
2024-03-18 10:14:40 +01:00
a1b5c0541b Fix NPE in generics, probably because interface method don't have code
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m55s
2024-03-15 17:14:27 +01:00
66c8c307b0 Fix recursive packages
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m25s
2024-03-14 15:23:31 +01:00
ebd6a00a39 Fix the rest of the test cases
All checks were successful
Build and Test with Maven / Build-and-test-with-Maven (push) Successful in 2m50s
2024-03-14 14:38:02 +01:00
f57d89c966 Manage imports per source file instead of globally, should fix #290 2024-03-14 13:51:20 +01:00
f9188e65ca Public all the things 2024-03-14 13:50:56 +01:00
e354838491 Use wildcard constraint in foreach, fixes #291 and hopefully doesn't break anything
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m45s
2024-03-14 10:23:19 +01:00
e17f08263e Fix <?> Wildcard not working in STG, fixes #287
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m23s
2024-03-13 11:42:32 +01:00
2cb84f9e2b Ignore annotations in STG, fix #288
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m33s
2024-03-13 11:29:17 +01:00
83ae05ea4a Fix #289
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m13s
2024-03-13 11:21:00 +01:00
26452eb5de Fix #286
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 3m19s
2024-03-11 16:16:10 +01:00
38827544c9 Split up test and compile to improve readability
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m21s
2024-03-08 17:33:49 +01:00
ff905390e8 Limit stack traces
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m47s
2024-03-08 17:30:01 +01:00
2d9094ec4e Redirect test output to file in order for the test output to be visible on gitea
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m28s
2024-03-08 17:20:54 +01:00
e27eb3a3fe Fix #285
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m37s
2024-03-08 16:58:00 +01:00
73ca790711 Create folder
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 2m36s
2024-03-08 15:26:40 +01:00
452064398a Update actions
Some checks failed
Build and Test with Maven / Build-and-test-with-Maven (push) Failing after 58s
2024-03-08 15:08:45 +01:00
20d6cb8eb9 Remove sudo?
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1m3s
2024-03-08 15:05:02 +01:00
b7f1db5d80 Update workflow
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 7s
2024-03-08 15:00:17 +01:00
b327518921 Update workflow
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 52s
2024-03-08 14:54:58 +01:00
945b47c762 Fix #284
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 8s
2024-03-08 14:42:49 +01:00
65a71ebe0c Add test for #285 and partially fix it
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 7s
2024-03-08 14:00:52 +01:00
deeb67c4f7 Add test workflow
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m0s
2024-03-07 14:41:50 +01:00
c92edeaf2a Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2024-03-07 10:44:37 +01:00
01e3d31f1a Add Object methods to every interface, fixes #125 2024-03-06 14:10:57 +01:00
a90e9df1e8 Fix regression #283 2024-03-05 10:26:30 +01:00
pl@gohorb.ba-horb.de
1c1f5ae29f Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2024-03-04 19:37:40 +01:00
pl@gohorb.ba-horb.de
8ab5bbd831 modified: src/test/java/AllgemeinTest.java 2024-03-04 19:37:10 +01:00
1877d7f170 Add test for #112 2024-03-04 12:19:56 +01:00
388614b220 Add testcase for LamRunnable 2024-03-04 12:00:29 +01:00
f2e43f180c Add test for issue #125 2024-03-04 11:51:28 +01:00
59585296b0 Fix single expressions not converting to blocks. Fixes #123 2024-03-04 11:30:36 +01:00
f11d4b0716 Fix for loop overflowing the stack. Fixes #122 2024-03-04 10:58:26 +01:00
584690596e Add filename to debug output, closes #126 2024-03-01 17:34:40 +01:00
9c6372c3ba Thats probably important 2024-02-28 13:22:13 +01:00
688358aa33 Add more debug help 2024-02-28 13:16:32 +01:00
a60282414c Add location information to constraints 2024-02-27 16:25:47 +01:00
75b9020cf9 Fix up Character 2024-02-26 15:02:15 +01:00
e88d4428c5 Fix constructor overloads getting picked with the wrong arity 2024-02-05 15:24:06 +01:00
dcfafe5995 Fix null literal 2024-02-05 14:46:00 +01:00
a035589647 Implement throw 2024-02-01 11:58:08 +01:00
9da763b361 Add instanceof 2024-01-31 17:27:18 +01:00
700ea125fc Throw different exception 2024-01-30 15:46:02 +01:00
f18903834e Fix super calls 2024-01-23 14:00:42 +01:00
b80cc726c8 Add ForEach loop 2024-01-19 16:29:59 +01:00
pl@gohorb.ba-horb.de
6cc40162da Merge branch 'targetBytecode' of gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-12-15 13:49:35 +01:00
pl@gohorb.ba-horb.de
71899ac673 Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.
2023-12-15 13:47:25 +01:00
pl@gohorb.ba-horb.de
a84d1ffdd7 modified: ../src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
Resultmodell aktiviert
	modified:   ../src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
a < void und void < a => a = void.
2023-11-08 18:28:54 +01:00
pl@gohorb.ba-horb.de
a3d63a0266 modified: ../src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
modified:   ../src/test/java/TestComplete.java
2023-11-08 18:10:56 +01:00
pl@gohorb.ba-horb.de
dcc2da85c5 Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-11-07 00:13:53 +01:00
pl@gohorb.ba-horb.de
6f193b19ab modified: src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
modified:   src/test/java/TestComplete.java
2023-11-07 00:13:43 +01:00
1c55954e5c Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-11-06 12:31:27 +01:00
ec04f01a10 Allow relative paths by getting the absolute file (seriously Java) 2023-11-06 12:30:42 +01:00
pl@gohorb.ba-horb.de
78a2fddc21 modified: ../../../../../resources/bytecode/javFiles/Cycle.class 2023-11-03 20:30:22 +01:00
pl@gohorb.ba-horb.de
44f8899157 Merge branch 'targetBytecode' of gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-11-03 20:26:41 +01:00
pl@gohorb.ba-horb.de
d1a6dcbbac modified: core/JavaTXCompiler.java
modified:   typeinference/constraints/ConstraintSet.java
	modified:   typeinference/unify/TypeUnifyTask.java
2023-11-03 20:25:17 +01:00
pl@gohorb.ba-horb.de
15150fca9e modified: ../../../src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java 2023-11-03 18:56:31 +01:00
pl@gohorb.ba-horb.de
fba7f0ee81 Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-11-03 18:42:09 +01:00
pl@gohorb.ba-horb.de
e0da2a4c46 modified: Cycle.class
modified:   LambdaRunnable.jav
	modified:   ../../../src/test/java/TestComplete.java
2023-11-03 18:41:17 +01:00
f588ece7c3 Fix up runnable 2023-11-03 15:45:14 +01:00
9ad5b76542 Fix up bad error handling 2023-11-03 10:26:43 +01:00
3d2c699964 Fix up functional interface 2023-11-02 15:46:40 +01:00
f95c3c5fcf Fix up method resolution 2023-11-02 15:25:25 +01:00
4654ecacaf Some changes in how overload resolution works 2023-11-02 13:07:42 +01:00
1be27746e3 Allow Void as return type for Lambdas 2023-10-31 14:26:43 +01:00
pl@gohorb.ba-horb.de
c51190feef Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-10-27 21:19:30 +02:00
pl@gohorb.ba-horb.de
c4ce97f20c Anpassung zur Integration von Functional Interfaces und FunN$$-Typen
modified:   src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/FCGenerator.java
	modified:   src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/SyntaxTreeGenerator.java
	modified:   src/main/java/de/dhbwstuttgart/syntaxtree/ClassOrInterface.java
	modified:   src/main/java/de/dhbwstuttgart/syntaxtree/Record.java
	modified:   src/main/java/de/dhbwstuttgart/syntaxtree/factory/ASTFactory.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/assumptions/FunNClass.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/interfaces/IFiniteClosure.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   src/test/java/targetast/ASTToTypedTargetAST.java
2023-10-27 21:17:52 +02:00
837317c84c Make System.out.println work 2023-10-27 15:28:46 +02:00
pl@gohorb.ba-horb.de
df852ef36e Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-10-27 14:33:21 +02:00
pl@gohorb.ba-horb.de
c00722823a Functional Interfaces und Funn&&-Typen integriert.
modified:   resources/bytecode/javFiles/LambdaRunnable.jav
	modified:   src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/FCGenerator.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/RuleSet.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/interfaces/IFiniteClosure.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/interfaces/IRuleSet.java
	modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/model/FiniteClosure.java
	modified:   src/test/java/TestComplete.java
2023-10-27 14:29:27 +02:00
e31f1c59e1 Examples 2023-10-27 14:27:47 +02:00
5d0d7a6d94 Translate for loop 2023-10-24 17:34:06 +02:00
b372c6ac1c More work on static, references to other classes 2023-10-24 15:17:13 +02:00
124dea2e58 Static blocks (might be needed for something) 2023-10-24 12:05:19 +02:00
eaef00ff54 Static but no static blocks yet 2023-10-23 16:44:12 +02:00
892ba5fff0 Add interfaces 2023-10-19 17:02:22 +02:00
628f1631e8 Allow packages 2023-10-18 16:54:41 +02:00
0b815950e1 Remove empty files 2023-10-17 12:31:29 +02:00
f10e7e6d72 Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-10-17 12:27:52 +02:00
700ecf3e5d Changes from weeks ago, needs review 2023-10-17 12:26:40 +02:00
pl@gohorb.ba-horb.de
f7c53fc6c3 modified: src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
Kommentar "In commit dfd91b5f8b eingefuegt" eingefuegt
2023-10-07 20:30:37 +02:00
pl@gohorb.ba-horb.de
9764ec6db1 Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-10-07 07:24:59 +02:00
pl@gohorb.ba-horb.de
b21faa30fc new file: S2023_Luca_Trumpfheller.pdf 2023-10-05 15:52:48 +02:00
pl@gohorb.ba-horb.de
87f8b8799e modified: src/test/java/AllgemeinTest.java 2023-10-05 15:49:09 +02:00
Vic Nightfall
769f1bb677 Progress on implementing the basic case 2023-09-01 18:26:01 +02:00
pl@gohorb.ba-horb.de
5623fdc020 Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-09-01 17:20:34 +02:00
pl@gohorb.ba-horb.de
dfd91b5f8b TESTEN OB DAS SINN MACHT
modified:   src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
	modified:   src/test/java/AllgemeinTest.java
2023-09-01 17:18:51 +02:00
Vic Nightfall
3c43978c55 Less general type 2023-09-01 12:51:06 +02:00
Vic Nightfall
fb7b51a971 Point out what the goal translation is 2023-09-01 12:34:43 +02:00
56c360104b TripleTest 2023-08-30 11:28:17 +02:00
e414da3369 Simple record patterns in method headers 2023-08-18 17:15:15 +02:00
5f1f698530 Refactor 2023-08-18 15:15:40 +02:00
729e88bc6d Add test for instanceof 2023-08-18 11:35:01 +02:00
bffc7f9f1c Remove TypePattern and replace it with FormalParameter 2023-08-17 16:25:19 +02:00
011b272af6 Fix missing constraints 2023-08-17 16:15:38 +02:00
ee359da751 Refactor Patterns 2023-08-17 15:56:16 +02:00
6025e17186 Infer String/Integer for patterns 2023-08-17 15:22:53 +02:00
93d7aca9e6 Switch on Strings 2023-08-17 14:23:19 +02:00
677c784b6d Allow single expressions in switch expression 2023-08-17 13:26:30 +02:00
e69a367c33 Add printout 2023-08-17 10:17:09 +02:00
14d0475d59 Type inference for switch 2023-08-17 09:27:24 +02:00
762d344e42 Make switches work with set types 2023-08-16 17:13:28 +02:00
be5591f7dc Rename files for macos and windows 2023-08-15 17:17:17 +02:00
7193f5a646 Workaround for eclipse 2023-08-15 16:52:54 +02:00
f46c2ad0f7 New test case 2023-08-01 14:02:19 +02:00
b0f7a264c2 Implement records 2023-07-31 15:11:35 +02:00
4f3164a48a Allow the first patterns 2023-07-28 12:05:30 +02:00
be55d661cb Add classic switch 2023-07-27 10:02:28 +02:00
3de9fde672 Add new target ast nodes and test cases for switch 2023-07-26 15:47:30 +02:00
a0582e918b Merge 2023-07-25 15:06:15 +02:00
pl@gohorb.ba-horb.de
18429d9cf9 Iteration.jav Pair ausgeklammert 2023-07-18 11:45:17 +02:00
pl@gohorb.ba-horb.de
b65df7c390 Merge branch 'targetBytecode' of gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-07-18 11:44:43 +02:00
pl@gohorb.ba-horb.de
a0e6df7cfd new file: resources/AllgemeinTest/Twice2.jav
modified:   src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
	modified:   src/test/java/AllgemeinTest.java
2023-07-13 15:25:34 +02:00
a17e1f473a Catch linkage error 2023-07-05 15:48:27 +02:00
5c62191f3b Consider constructors when creating class generics 2023-07-04 12:17:14 +02:00
b04201de42 Don't load classes that get compiled by a source file 2023-07-04 11:40:23 +02:00
pl@gohorb.ba-horb.de
a15cbcba7b Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-07-03 11:54:30 +02:00
pl@gohorb.ba-horb.de
9019d90b1e Please enter the commit message for your changes. Lines starting
with '#' will be ignored, and an empty message aborts the commit.
2023-07-03 11:53:15 +02:00
d07b2bdf0a Merge branch 'targetBytecode' of ssh://gohorb.ba-horb.de:/bahome/projekt/git/JavaCompilerCore into targetBytecode 2023-07-03 10:13:59 +02:00
d05054755c Fix bug 2023-07-03 10:13:01 +02:00
d55b402269 Some fixes 2023-06-28 14:09:24 +02:00
bdaf578f86 Fix equality 2023-06-27 15:48:15 +02:00
6079e96efa Test more thoroughly and add a new infimum deletion strategy 2023-06-27 15:01:28 +02:00
264 changed files with 20191 additions and 2137 deletions

View File

@ -0,0 +1,25 @@
name: Build and Test with Maven
on: [push]
jobs:
Build-and-test-with-Maven:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Install maven
run: |
apt update
apt install -y maven
- name: Install java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'maven'
- name: Compile project
run: |
mvn compile
- name: Run tests
run: |
mvn test

File diff suppressed because it is too large Load Diff

21
pom.xml
View File

@ -29,14 +29,14 @@ http://maven.apache.org/maven-v4_0_0.xsd">
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>22.0</version>
<groupId>io.github.classgraph</groupId>
<artifactId>classgraph</artifactId>
<version>4.8.172</version>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.2.0-jre</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.ow2.asm/asm -->
<dependency>
@ -54,8 +54,8 @@ http://maven.apache.org/maven-v4_0_0.xsd">
<version>3.11.0</version>
<configuration>
<compilerArgs>--enable-preview</compilerArgs>
<source>20</source>
<target>20</target>
<source>21</source>
<target>21</target>
</configuration>
</plugin>
<plugin>
@ -63,9 +63,14 @@ http://maven.apache.org/maven-v4_0_0.xsd">
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<reportsDirectory>${project.build.directory}/test-reports</reportsDirectory>
<argLine>--enable-preview</argLine>
<trimStackTrace>false</trimStackTrace>
<excludes>
<exclude>**/JavaTXCompilerTest.java</exclude>
<exclude>**/AllgemeinTest.java</exclude>
<exclude>**/syntaxtreegenerator/*.java</exclude>
</excludes>
</configuration>
</plugin>

View File

@ -0,0 +1,8 @@
class Box<A> {
A a;
public Box(A a) {
this.a = a;
}
}

View File

@ -0,0 +1,22 @@
class Pair<U, T> {
U a;
T b;
Pair(U x, T y) {
a = x; b = y;
}
}
class Complex {
m(b) {
var c = b;
var d = c;
var e;
d = e;
var r1 = e;
var f = e;
var g;
f = g;
var r2 = g;
return new Pair<>(r1, r2);
}
}

View File

@ -0,0 +1,7 @@
public class InfReturn {
m(a) {
var ret;
a = ret;
return ret;
}
}

View File

@ -0,0 +1,8 @@
public class InfReturnII {
m(a, b) {
var ret;
a = ret;
b = ret;
return ret;
}
}

View File

@ -0,0 +1,7 @@
class InnerInf {
m(a, b) {
var i;
a = i;
b = i;
}
}

View File

@ -1,4 +1,4 @@
/*
class Pair<T, U> {
T x;
U y;
@ -17,7 +17,7 @@ class Pair<T, U> {
return y;
}
}
*/
public class Iteration {
id(x) {

View File

@ -0,0 +1,46 @@
import java.lang.Boolean;
import java.lang.Object;
class List {
elem;
next;
List() {
super();
}
List(elem, next) {
this.elem = elem;
this.next = next;
}
addElement(newElem) {
return new List(newElem, this);
}
append(l) {
if (next == null) {
return l;
}
else {
return new List(elem, next.append(l));
}
}
/*
addAll(l) {
var nextLoc = next;
while (//nextLoc != null
true) {
nextLoc = nextLoc.next;
}
nextLoc = l;
}
void m() {
List<? extends Object> l; // = new List<Integer>(1, null);
List<? extends Object> l2; // = new List<String>("SSS", null);
l.addAll(l2);
}
*/
}

View File

@ -0,0 +1,7 @@
import java.lang.Integer;
import java.lang.Double;
class Overloading {
m(x) { return x + x; }
m(x) { return x || x; }
}

View File

@ -0,0 +1,8 @@
class RecursionCond {
m(a, b, c) {
if (1 == 2) {
b = m(a, b);
c = m(a, b);
} else return a;
}
}

View File

@ -0,0 +1,9 @@
import java.lang.Boolean;
import java.lang.Integer;
public class Test {
fac = (x) -> {
if (x == 1) { return 1; }
return x * fac.apply(x - 1);
};
}

View File

@ -0,0 +1,19 @@
class Triple<U, T, S> {
U a;
T b;
S c;
Triple(U x, T y, S z) {
a = x; b = y; c = z;
}
U fst() { return a; }
T snd() { return b; }
S thrd() { return c; }
}
public class TripleTest {
m() {
return new Triple<>(m().thrd(), m().thrd(), m().thrd());
}
}

View File

@ -0,0 +1,12 @@
class Twice2 {
id1inst = new Id<>();
id1 = id1inst.id;
id2inst = new Id<>();
id2 = id2inst.id;
twice = id1.apply(id2);
}
class Id<T> {
id = (T x) -> x;
}

View File

@ -2,7 +2,7 @@ import java.lang.Integer;
import java.lang.String;
public class AA {
m(Integer i) { return "AA"; }
public m(Integer i) { return "AA"; }
m2(AA x) { return "AA"; }
public m2(AA x) { return "AA"; }
}

View File

@ -0,0 +1,14 @@
public class Access {
public int fPublic;
int fDefault;
private int fPrivate;
protected int fProtected;
public void mPublic() {}
void mDefault() {}
private void mPrivate() {}
protected void mProtected() {}
}
class AccessDefault {
}

View File

@ -0,0 +1,8 @@
class Base {
public void foo() {}
}
public class Annotation extends Base {
@Override
public void foo() {}
}

View File

@ -1,3 +1,4 @@
import java.lang.Integer;
import AA;
public class BB extends AA { }

View File

@ -3,15 +3,15 @@ import java.lang.Double;
public class BinaryInMeth {
m(a){
public m(a){
return ++a;
}
m2(a,b){
public m2(a,b){
return m(a+b);
}
m3(a) {
public m3(a) {
return m(++a);
}
}

View File

@ -1,7 +1,9 @@
class B { }
class Box_Main extends B {
m(b) {
b.m(new Box_Main());
b.m(new B());
}
}
public class Box<A> {
A a;
public Box() { }
public Box(A a) {
//this.a = a;
}
}

View File

@ -0,0 +1,7 @@
public class Bug112 {
public m(x) {
var y;
x = y;
return y;
}
}

View File

@ -0,0 +1,12 @@
import java.lang.Integer;
import java.lang.Boolean;
public class Bug122 {
public void main() {
if (true) {
for (Integer i = 0; i < 10; i++) {
}
}
}
}

View File

@ -0,0 +1,13 @@
import java.lang.Boolean;
import java.lang.Integer;
public class Bug123 {
public Boolean works(){
if(true) return true;
else return false;
}
public void fails(){
Boolean a = true;
if(true) a = false;
}
}

View File

@ -0,0 +1,16 @@
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.LinkedList;
import java.util.ArrayList;
public class Bug125 {
static ArrayList<String> works = new ArrayList<>();
static List<String> fails = new ArrayList<>();
public void main() {
works.toString();
fails.toString();
}
}

View File

@ -0,0 +1,15 @@
import java.util.Optional;
import java.lang.Integer;
public class StaticClass {
public static StaticClass barbar() {
return new StaticClass();
}
}
public class Bug285 {
public void foo() {
Optional<Integer> opt = Optional.empty();
StaticClass b = StaticClass.barbar();
}
}

View File

@ -0,0 +1,7 @@
import Bug290B;
public class Bug290A {
public void m() {
new Bug290B();
}
}

View File

@ -0,0 +1,11 @@
import java.lang.String;
import java.lang.Integer;
public class Bug290B {
String name;
public Bug290B() {
Integer i = 0;
name = i.toString() + "$$";
}
}

View File

@ -0,0 +1,13 @@
import java.lang.Integer;
import java.lang.Float;
public class Bug293 {
bar(a) {
return 2 * a;
}
}
interface IFoo {
void ga();
}

View File

@ -0,0 +1,18 @@
import java.lang.Integer;
public class Bug295 {
public Integer a;
public Integer b;
public Integer c;
public Bug295(a, b, c) {
this(a);
this.b = b;
this.c = c;
}
public Bug295(a) {
this.a = a;
}
}

View File

@ -0,0 +1,11 @@
import java.lang.Integer;
public class Bug296 {
public static m1() {
return m2();
}
static m2() {
return 10;
}
}

View File

@ -0,0 +1,11 @@
import java.lang.Integer;
public class Bug297 {
public static operation(func, a, b) {
return func.apply(a, b);
}
public exec() {
return Foo.operation((x, y) -> x + y, 10, 10);
}
}

View File

@ -0,0 +1,17 @@
import java.util.List;
import java.util.ArrayList;
import java.lang.Integer;
import java.lang.System;
import java.lang.Boolean;
import java.io.PrintStream;
import java.util.stream.Stream;
import java.util.function.Function;
public class Bug298 {
public void m() {
List<Integer> list = new ArrayList<>();
list.stream().map(x -> 2 * x);
Function<Integer, Boolean> filter = x -> true;
}
}

View File

@ -0,0 +1,17 @@
import java.lang.String;
class Base {
toString() {
return "Base";
}
}
public class Bug300 extends Base {
public m() {
return super.toString();
}
toString() {
return "Derived";
}
}

View File

@ -0,0 +1,4 @@
import java.util.HashSet;
public class Bug301<A> extends HashSet<A> {
}

View File

@ -0,0 +1,11 @@
import java.util.ArrayList;
import java.util.List;
import java.lang.Integer;
public class Bug302 {
public Bug302(List<Integer> a){}
public static m() {
new Bug302(new ArrayList<Integer>());
}
}

View File

@ -0,0 +1,13 @@
import java.lang.Integer;
import java.util.List;
class Base {
m(List<Integer> a) {}
}
public class Bug306 extends Base {
@Override
m(List<Integer> b) {
b.add(1);
}
}

View File

@ -0,0 +1,46 @@
public class Bug307 {
public void main() {
IVisitor v = new Visitor();
Impl2 f = new Impl2();
Impl1 g = new Impl1();
f.accept(v);
g.accept(v);
}
}
interface IVisitor {
void visit(Impl1 f);
void visit(Impl2 fb);
}
interface IAcceptor {
void accept(IVisitor v);
}
class Visitor implements IVisitor {
@Override
public void visit(Impl1 f) {
}
@Override
public void visit(Impl2 fb) {
}
}
class Impl1 implements IAcceptor {
@Override
public void accept(IVisitor v) {
v.visit(this);
}
}
class Impl2 implements IAcceptor {
@Override
public void accept(IVisitor v) {
v.visit(this);
}
}

View File

@ -0,0 +1,16 @@
import java.util.List;
import java.util.ArrayList;
import java.lang.Integer;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.Optional;
public class Bug309 {
public main() {
List<Integer> list = new ArrayList<>(List.of(1,2,3,4,5,6,7,8,9));
var res = list.stream().filter(x -> x == 5).map(x -> x * 2).findFirst();
return res;
}
}

View File

@ -0,0 +1,9 @@
import java.lang.Integer;
import java.lang.String;
public class Bug310 {
Integer i = 3;
public toString() {
return i.toString();
}
}

View File

@ -0,0 +1,10 @@
import java.lang.String;
public class Bug311 {
Bug311A i = new Bug311A();
public toString() {
return i.toString();
}
}
class Bug311A {}

View File

@ -0,0 +1,8 @@
public class Bug312 {
Bug312A i = new Bug312A();
public main() {
if (i == null) {}
}
}
class Bug312A {}

View File

@ -0,0 +1,13 @@
import java.lang.Integer;
import java.util.List;
import java.util.ArrayList;
import java.util.stream.Stream;
import java.util.function.Predicate;
import java.util.function.Function;
import java.util.stream.Collectors;
public class Bug314 {
public List<Integer> convert(List<Integer> in) {
return in.stream().filter(x -> x > 5).collect(Collectors.toList());
}
}

View File

@ -0,0 +1,13 @@
import java.lang.Integer;
import java.util.function.Function;
import java.util.List;
import java.util.ArrayList;
import java.util.stream.Stream;
public class Bug325 {
public main() {
List<Integer> list = new ArrayList<>(List.of(1,2,3,4,5));
var func = x -> x*2;
return list.stream().map(func).toList();
}
}

View File

@ -0,0 +1,8 @@
import java.lang.Integer;
public class Bug326 {
public Bug326() {
var func = x -> y -> x * y;
return func.apply(3).apply(4);
}
}

View File

@ -0,0 +1,8 @@
import java.lang.Integer;
import Bug328B;
public class Bug328 extends Bug328B {
public Bug328() {
super(1);
}
}

Binary file not shown.

View File

@ -0,0 +1,3 @@
public class Bug328B {
public Bug328B(int a) {}
}

View File

@ -0,0 +1,11 @@
import java.lang.String;
public class Bug333 {
public static String Bar = "Bar";
}
class Bar {
public bar() {
String s = Bug333.Bar;
}
}

View File

@ -0,0 +1,11 @@
import java.util.List;
import java.lang.Integer;
import java.lang.String;
import java.lang.Object;
import java.util.List;
public class Bug338 {
public hashCode() {
return List.of(42);
}
}

View File

@ -0,0 +1,16 @@
import java.util.Vector;
import java.lang.Integer;
import java.lang.String;
public class Bug98 {
public 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);
}
}

View File

@ -0,0 +1,16 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.lang.String;
import java.util.stream.Stream;
import java.util.function.Function;
import java.util.function.Predicate;
import java.lang.Integer;
class BugXXX {
public main() {
List<Integer> i = new ArrayList<>(List.of(1,2,3,4,5,6,7,8,9,10));
Optional<Integer> tmp = i.stream().filter(x -> x == 5).map(x -> x*2).findFirst();
return tmp;
}
}

View File

@ -1,11 +1,11 @@
import java.lang.Integer;
import java.lang.String;
import BB;
public class CC extends BB {
m(Integer i) {
public m(Integer i) {
return "CC";
}
m2(CC x) { return "CC"; }
public m2(CC x) { return "CC"; }
}

View File

@ -0,0 +1,13 @@
import java.lang.Integer;
public class Chain {
x = 5;
chain() {
return this;
}
public m() {
return this.chain().chain().chain().x;
}
}

View File

@ -1,5 +1,5 @@
class Cycle {
m(x, y) {
public class Cycle {
public m(x, y) {
y = x;
x = y;
}

View File

@ -1,4 +1,5 @@
import java.lang.Integer;
import CC;
public class DD extends CC { }

View File

@ -1,3 +1,8 @@
import java.lang.String;
import java.lang.RuntimeException;
public class Exceptions {
// m(Integer i) throws
public m() {
throw new RuntimeException("Some Exception");
}
}

View File

@ -1,12 +1,12 @@
import java.lang.Integer;
import java.lang.Double;
import java.lang.String;
public class Fac {
getFac(n){
public class Fac {
getFac(n) {
var res = 1;
var i = 1;
while(i<=n) {
while (i <= n) {
res = res * i;
i++;
}

View File

@ -1,12 +1,14 @@
import java.lang.String;
public class FieldTph2 {
a;
public a;
m(b){
public m(b){
b = a;
return b;
}
m2(c){
public m2(c){
a = c;
}
}

View File

@ -1,20 +1,20 @@
public class FieldTphConsMeth {
a;
public a;
public FieldTphConsMeth(c) {
a = id(c);
}
id(b) {
public id(b) {
return b;
}
setA(x) {
public setA(x) {
a = x;
return a;
}
m(x,y) {
public m(x,y) {
x = id(y);
}

View File

@ -1,13 +1,13 @@
import java.lang.Boolean;
public class FieldTphMMeth {
a;
public a;
public FieldTphMMeth(c,d,e) {
a = m(c,d,e);
}
m(b,d,e) {
public m(b,d,e) {
if(e) {
return m3(b);
} else{
@ -16,11 +16,11 @@ public class FieldTphMMeth {
}
m2(b) {
public m2(b) {
a = m3(b);
}
m3(b){
public m3(b){
return b;
}

View File

@ -1,23 +1,23 @@
import java.lang.Integer;
import java.lang.Boolean;
class For{
Integer m(Integer x){
public class For{
public Integer m(Integer x){
var c = x + 2;
// Boolean b = true;
// c = 5;
// c++;
// ++c;
// c--;
// --c;
// while(x<2){
// x = x +1;
// b = false;
// }
return c;
// for(int i = 0;i<10;i++) {
// x = x + 5;
// }
Boolean b = true;
c = 5;
c++;
++c;
c--;
--c;
while(x<2){
x = x +1;
b = false;
}
for(int i = 0; i<10; i++) {
x = x + 5;
}
return x;
}
// m2(Integer x){

View File

@ -0,0 +1,23 @@
import java.util.ArrayList;
import java.lang.Integer;
import java.lang.Number;
public class ForEach {
public m() {
var list = new ArrayList<>();
list.add(1); list.add(2); list.add(3);
var sum = 0;
for (var i : list) {
sum = sum + i;
}
return sum;
}
public m2() {
var list = new ArrayList<? extends Number>();
for (Number n : list) {
}
}
}

View File

@ -0,0 +1,15 @@
import java.lang.Integer;
import java.util.function.Function;
public class FunctionalInterface {
Integer accept(Function<Integer, Integer> f) {
return f.apply(20);
}
public Integer m() {
var v = accept(i -> {
return i * 10;
});
return v;
}
}

View File

@ -1,8 +1,8 @@
import java.lang.String;
import java.lang.Integer;
class Generics2<B extends String>{
<B extends Integer> B m1(B b){
public class Generics2<B extends String>{
public <X extends Integer> X m1(X b){
return b;
}

View File

@ -0,0 +1,9 @@
import java.lang.System;
import java.lang.String;
import java.io.PrintStream;
public class HelloWorld {
public static hello() {
System.out.println("Hello World!");
}
}

View File

@ -0,0 +1,5 @@
import java.lang.*;
public class ImportWildcard {
m(a, b) { return a * b; }
}

View File

@ -2,15 +2,18 @@ import java.util.Vector;
import java.lang.Integer;
import java.lang.String;
import AA;
import BB;
import CC;
import DD;
public class Inherit {
main(d, i) {
public main(d, i) {
return d.m(i);
}
main(v, i) {
public main(v, i) {
var aa = v.elementAt(0);
return aa.m(i);
}

View File

@ -2,15 +2,18 @@ import java.util.Vector;
import java.lang.Integer;
import java.lang.String;
import AA;
import BB;
import CC;
import DD;
public class Inherit2 {
main(d) {
public main(d) {
return d.m2(d);
}
main(v) {
public main(v) {
var aa = v.elementAt(0);
return aa.m2(aa);
}

View File

@ -0,0 +1,18 @@
import java.lang.Object;
import java.lang.Integer;
import java.lang.Boolean;
interface Interface {}
class Test implements Interface {
}
class Test2 {
}
public class InstanceOf {
a = new Test();
public test1() { return this.a instanceof Test; }
public test2() { return this.a instanceof Interface; }
public test3() { return this.a instanceof Integer; }
}

View File

@ -0,0 +1,33 @@
import java.lang.Integer;
interface A {
void method1();
default method2() {
}
}
interface B {
void method3();
}
interface C {
Integer myInt();
}
class ClassX implements A {
}
record ClassY(Integer myInt) implements C {}
public class Interfaces implements A, B {
public void method1() {
}
public void method3() {
var intf = new Interfaces();
intf = new ClassX();
intf.method1();
C c = new ClassY(10);
c.myInt();
}
}

View File

@ -1,8 +1,15 @@
public class LamRunnable{
import java.lang.Runnable;
import java.lang.System;
import java.lang.String;
import java.io.PrintStream;
public class LamRunnable {
public LamRunnable() {
Runnable lam = () -> {
System.out.println("lambda");
};
public LamRunnable(){
Runnable lam = () -> {System.out.println("lambda");};
lam.run();
}
}

View File

@ -2,7 +2,7 @@ import java.lang.Integer;
public class Lambda {
m () {
public m() {
var lam1 = (x) -> {
return x;
};

View File

@ -1,13 +1,16 @@
import java.lang.Runnable;
import java.lang.String;
import java.lang.System;
import java.io.PrintStream;
public class LamRunnable{
public class LambdaRunnable {
public LamRunnable(){
public LambdaRunnable(){
Runnable lam = () -> {System.out.println("lambda");};
Runnable lam = () -> {
System.out.println("Runnable is running");
};
lam.run();
}
}

View File

@ -4,52 +4,52 @@ import java.lang.Float;
import java.lang.Double;
public class LessEqual {
lessEqual(Integer a, Integer b){
public lessEqual(Integer a, Integer b){
var c = a<=b;
return c;
}
lessEqual(Long a, Long b){
public lessEqual(Long a, Long b){
var c = a<=b;
return c;
}
lessEqual(Float a, Float b){
public lessEqual(Float a, Float b){
var c = a<=b;
return c;
}
lessEqual(Double a, Double b){
public lessEqual(Double a, Double b){
var c = a<=b;
return c;
}
lessEqual(Long a, Integer b){
public lessEqual(Long a, Integer b){
var c = a<=b;
return c;
}
lessEqual(Float a, Integer b){
public lessEqual(Float a, Integer b){
var c = a<=b;
return c;
}
lessEqual(Double a, Integer b){
public lessEqual(Double a, Integer b){
var c = a<=b;
return c;
}
lessEqual(Float a, Long b){
public lessEqual(Float a, Long b){
var c = a<=b;
return c;
}
lessEqual(Double a, Long b){
public lessEqual(Double a, Long b){
var c = a<=b;
return c;
}
lessEqual(Double a, Float b){
public lessEqual(Double a, Float b){
var c = a<=b;
return c;
}

View File

@ -5,52 +5,52 @@ import java.lang.Double;
public class LessThan {
lessThan(Integer a, Integer b){
public lessThan(Integer a, Integer b){
var c = a<b;
return c;
}
lessThan(Long a, Long b){
public lessThan(Long a, Long b){
var c = a<b;
return c;
}
lessThan(Float a, Float b){
public lessThan(Float a, Float b){
var c = a<b;
return c;
}
lessThan(Double a, Double b){
public lessThan(Double a, Double b){
var c = a<b;
return c;
}
lessThan(Long a, Integer b){
public lessThan(Long a, Integer b){
var c = a<b;
return c;
}
lessThan(Float a, Integer b){
public lessThan(Float a, Integer b){
var c = a<b;
return c;
}
lessThan(Double a, Integer b){
public lessThan(Double a, Integer b){
var c = a<b;
return c;
}
lessThan(Float a, Long b){
public lessThan(Float a, Long b){
var c = a<b;
return c;
}
lessThan(Double a, Long b){
public lessThan(Double a, Long b){
var c = a<b;
return c;
}
lessThan(Double a, Float b){
public lessThan(Double a, Float b){
var c = a<b;
return c;
}

View File

@ -0,0 +1,8 @@
import java.lang.Character;
public class Literal {
public m() { return null; }
public m2() { return 'C'; }
public m3() { return 10L; }
public m4() { return 10.5F; }
}

View File

@ -1,3 +1,5 @@
import java.util.List;
import java.util.AbstractList;
import java.util.Vector;
import java.lang.Integer;
//import java.lang.Float;
@ -9,7 +11,7 @@ public class Matrix extends Vector<Vector<Integer>> {
Matrix () {
}
Matrix(vv) {
public Matrix(vv) {
Integer i;
i = 0;
while(i < vv.size()) {
@ -19,7 +21,7 @@ public class Matrix extends Vector<Vector<Integer>> {
}
}
mul(m) {
public mul(m) {
var ret = new Matrix();
var i = 0;
while(i < size()) {
@ -30,8 +32,8 @@ public class Matrix extends Vector<Vector<Integer>> {
var erg = 0;
var k = 0;
while(k < v1.size()) {
erg = erg + v1.elementAt(k)
* m.elementAt(k).elementAt(j);
erg = erg + v1.get(k)
* m.get(k).get(j);
k++; }
// v2.addElement(new Integer(erg));
v2.addElement(erg);

View File

@ -8,7 +8,7 @@ public class MatrixOP extends Vector<Vector<Integer>> {
MatrixOP () {
}
MatrixOP(vv) {
public MatrixOP(vv) {
Integer i;
i = 0;
while(i < vv.size()) {

View File

@ -2,16 +2,16 @@ import java.util.List;
import java.lang.Integer;
//import java.util.Collection;
class Merge {
public class Merge {
merge(a, b) {
public merge(a, b) {
a.addAll(b);
return a;
}
sort(in){
public sort(in){
var firstHalf = in.subList(1,2);
var secondHalf = in.subList(1,2);
return merge(sort(firstHalf), sort(secondHalf));

View File

@ -1,13 +1,14 @@
import java.lang.Double;
import java.lang.String;
import java.lang.Long;
import java.lang.Integer;
class OL {
m (x) { return x + x; }
public class OL {
public m (x) { return x + x; }
}
class OLMain {
main(x) {
public class OLMain {
public main(x) {
var ol;
ol = new OL();
return ol.m(x);

View File

@ -0,0 +1,17 @@
import java.lang.Integer;
public class Parent {
public Integer x;
public Parent(Integer a) {
this.x = a;
}
public Parent() {}
}
public class Child extends Parent {
public Child() {
super(3);
}
}

View File

@ -1,11 +1,34 @@
public class Op1{
public Op1() {
Runnable lam = () -> {
String test = "";
String b = "b";
test = b;
System.out.println(test);};
//lam.run();
import java.lang.Boolean;
import java.lang.Integer;
public class Op1 {
public not() {
var b = false;
var c = !b;
return c;
}
public or() {
var a = 10;
var b = 20;
return a | b;
}
public and() {
var a = 10;
var b = 20;
return a & b;
}
public xor() {
var a = 10;
var b = 20;
return a ^ b;
}
public mod() {
var a = 10;
var b = 2;
return a % b;
}
}

View File

@ -1,11 +1,17 @@
import java.lang.Integer;
import java.lang.Double;
import java.lang.String;
public class Op2 {
m(){
public m(){
var x = "";
var a = 5+x;
Integer x = 10;
Double y = 10.5;
var a = x - y;
return a;
}
}

View File

@ -0,0 +1,50 @@
import java.lang.Integer;
import java.lang.Number;
import java.lang.Float;
record Point(Number x, Number y) {}
public class OverloadPattern {
public m(Point(Integer x, Integer y)) {
return x + y;
}
public m(Point(Float x, Float y)) {
return x * y;
}
public m(Integer x) {
return x;
}
}
/*
public class OverloadPattern {
Integer m$Point$_$java$lang$Integer$_$java$lang$Integer$_$(Point point) {
var x = point.x();
var y = point.y();
return x + y;
}
Float m$Point$_$java$lang$Float$_$java$lang$Float$_$(Point point) {
var x = point.x();
var y = point.y();
return x * y;
}
Number m(Point point) {
return switch(point) {
case Point(Integer x, Integer y) ->
m$Point$_$java$lang$Integer$_$java$lang$Integer$_$(point);
case Point(Float x, Float y) ->
m$Point$_$java$lang$Float$_$java$lang$Float$_$(point);
default -> throw new IllegalArgumentException();
}
}
Integer m(Integer x) {
return x;
}
}
*/

View File

@ -2,17 +2,17 @@ import java.lang.String;
public class Overloading{
test(x){
public test(x){
return x.methode();
}
methode(){
public methode(){
return "Overloading";
}
}
public class Overloading2{
methode(){
public methode(){
return "Overloading2";
}
}

View File

@ -0,0 +1,12 @@
import java.lang.Object;
import java.lang.Boolean;
public class OverrideEquals extends OverrideRoot {
public boolean equals(Object o) {
return true;
}
public int method(int var1, float var2) {
return 0;
}
}

Binary file not shown.

View File

@ -0,0 +1,3 @@
public abstract class OverrideRoot {
public abstract int method(int a, float b);
}

View File

@ -2,31 +2,16 @@ import java.util.Vector;
import java.lang.Boolean;
import java.lang.Object;
class Pair<U, T> {
U a;
T b;
make(x) {
var ret = new Pair<>();
ret.a = x.elementAt(0);
ret.b = x.elementAt(1);
return ret;
}
/*
eq(a, b) {
b = a;
return a == b;
}
public class Pair<T, U> {
T x;
U y;
compare( p) {
return eq(p.a, p.b);
//return p.a == p.b;
}
public fst() {
return x;
}
void m(Pair<?, ?> p, List<? extends Eq> b)
{
//this.compare(p); //1, type incorrect
this.compare(this.make(b)); //2, OK
public snd() {
return y;
}
*/
}

View File

@ -3,7 +3,7 @@ import java.lang.String;
public class Plus {
m(a,b) {
public m(a,b) {
return a+b;
}
}

View File

@ -1,25 +1,25 @@
import java.lang.Integer;
public class PostIncDec {
m() {
public m() {
var i = 0;
i++;
return i;
}
m2() {
public m2() {
var i = 0;
var j = i++;
return j;
}
d() {
public d() {
var i = 0;
i--;
return i;
}
d2() {
public d2() {
var i = 0;
var j = i--;
return j;

View File

@ -1,25 +1,25 @@
import java.lang.Integer;
public class PreInc {
m() {
public m() {
var i = 0;
++i;
return i;
}
m2() {
public m2() {
var i = 0;
var j = ++i;
return j;
}
d() {
public d() {
var i = 0;
--i;
return i;
}
d2() {
public d2() {
var i = 0;
var j = --i;
return j;

View File

@ -3,16 +3,16 @@ import java.util.Stack;
public class Put {
putElement(ele, v) {
public putElement(ele, v) {
v.addElement(ele);
}
putElement(ele, s) {
public putElement(ele, s) {
s.push(ele);
}
main(ele, x) {
public main(ele, x) {
putElement(ele, x);
}

View File

@ -0,0 +1,22 @@
import java.lang.Integer;
record Rec(Integer a, Integer b) {}
/*public class Rec {
x; y;
Rec(Integer a, Integer b) {
x = a;
y = b;
}
}*/
public class RecordTest {
Rec a = new Rec(10, 20);
Rec b = new Rec(10, 20);
Rec c = new Rec(20, 40);
public doesEqual() { return a.equals(b); }
public doesNotEqual() { return b.equals(c); }
public hashCode() { return a.hashCode(); }
public toString() { return a.toString(); }
}

View File

@ -2,7 +2,7 @@ import java.lang.Integer;
import java.lang.Boolean;
public class RelOps {
m(a,b){
public m(a,b){
return a<b;
}
}

View File

@ -6,7 +6,7 @@ import java.lang.Float;
public class Scalar extends Vector<Integer> {
Scalar(v) {
public Scalar(v) {
Integer i;
i = 0;
while(i < v.size()) {
@ -15,7 +15,7 @@ public class Scalar extends Vector<Integer> {
}
}
mul(v) {
public mul(v) {
var ret = 0;
var i = 0;
while(i < size()) {

View File

@ -0,0 +1,18 @@
import java.lang.Integer;
class Other {
static field = 20;
}
public class Static {
static i = 20;
static {
var x = 30;
i = x;
}
public static m() {
return i + Other.field;
}
}

View File

@ -0,0 +1,11 @@
import java.lang.Integer;
class Parent {
public Parent(Integer x) {}
}
public class SuperCall extends Parent {
public SuperCall() {
super(20);
}
}

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