Compare commits
340 Commits
Author | SHA1 | Date | |
---|---|---|---|
9c2c6a3ea9 | |||
a7ad4fa984 | |||
fcda301b1e | |||
2aa3997f17 | |||
7e37497740 | |||
3d2b935c60 | |||
db01b0c8dd | |||
662756ac18 | |||
b0bf41968e | |||
2221b559ca | |||
021b7ec9fe | |||
154d4823e4 | |||
71dfe5d9e1 | |||
58110c474a | |||
df2ec4b1ba | |||
2c66a1d6e6 | |||
c76ee355d8 | |||
a5c314c5c5 | |||
cba35a4bec | |||
b774281cbb | |||
9358130468 | |||
708aa64283 | |||
c21e5202d6 | |||
b3bd5cde10 | |||
df78937ef3 | |||
7fb4824f8d | |||
e0d71a6003 | |||
49803385cf | |||
39d02f792c | |||
4fc78f494c | |||
b752219d8c | |||
ec890356e4 | |||
d405b0c3a2 | |||
6c8657b7a8 | |||
bcce4cee19 | |||
e6cd4038e2 | |||
e50f941b79 | |||
cb7d0e22cc | |||
0d5be89310 | |||
0b7f07108f | |||
6b0816c1c4 | |||
f66b9099f3 | |||
da74898f9d | |||
46a7f61234 | |||
e59accf7ee | |||
4b110244f2 | |||
e37040f367 | |||
6850a8fa21 | |||
877e5ed38a | |||
82b4450857 | |||
b70e435120 | |||
3b14cd609f | |||
8fdfbf875b | |||
bc61fc2e1d | |||
62f2e05f35 | |||
606ce8b82d | |||
c84befae51 | |||
7f3c1686ec | |||
43da2ffbdc | |||
9472b5c86f | |||
7cb0e9dbb7 | |||
e07521d9b6 | |||
c2ee12397f | |||
e6321ff8bc | |||
786e0a7a23 | |||
1c63321b30 | |||
1f74345324 | |||
518f58e08f | |||
0acfe6c0d4 | |||
c07d4d36e9 | |||
01e374eadd | |||
a1b5c0541b | |||
66c8c307b0 | |||
ebd6a00a39 | |||
f57d89c966 | |||
f9188e65ca | |||
e354838491 | |||
e17f08263e | |||
2cb84f9e2b | |||
83ae05ea4a | |||
26452eb5de | |||
38827544c9 | |||
ff905390e8 | |||
2d9094ec4e | |||
e27eb3a3fe | |||
73ca790711 | |||
452064398a | |||
20d6cb8eb9 | |||
b7f1db5d80 | |||
b327518921 | |||
945b47c762 | |||
65a71ebe0c | |||
deeb67c4f7 | |||
c92edeaf2a | |||
01e3d31f1a | |||
a90e9df1e8 | |||
1c1f5ae29f | |||
8ab5bbd831 | |||
1877d7f170 | |||
388614b220 | |||
f2e43f180c | |||
59585296b0 | |||
f11d4b0716 | |||
584690596e | |||
9c6372c3ba | |||
688358aa33 | |||
a60282414c | |||
75b9020cf9 | |||
e88d4428c5 | |||
dcfafe5995 | |||
a035589647 | |||
9da763b361 | |||
700ea125fc | |||
f18903834e | |||
b80cc726c8 | |||
6cc40162da | |||
71899ac673 | |||
a84d1ffdd7 | |||
a3d63a0266 | |||
dcc2da85c5 | |||
6f193b19ab | |||
1c55954e5c | |||
ec04f01a10 | |||
78a2fddc21 | |||
44f8899157 | |||
d1a6dcbbac | |||
15150fca9e | |||
fba7f0ee81 | |||
e0da2a4c46 | |||
f588ece7c3 | |||
9ad5b76542 | |||
3d2c699964 | |||
f95c3c5fcf | |||
4654ecacaf | |||
1be27746e3 | |||
c51190feef | |||
c4ce97f20c | |||
837317c84c | |||
df852ef36e | |||
c00722823a | |||
e31f1c59e1 | |||
5d0d7a6d94 | |||
b372c6ac1c | |||
124dea2e58 | |||
eaef00ff54 | |||
892ba5fff0 | |||
628f1631e8 | |||
0b815950e1 | |||
f10e7e6d72 | |||
700ecf3e5d | |||
f7c53fc6c3 | |||
9764ec6db1 | |||
b21faa30fc | |||
87f8b8799e | |||
769f1bb677 | |||
5623fdc020 | |||
dfd91b5f8b | |||
3c43978c55 | |||
fb7b51a971 | |||
56c360104b | |||
e414da3369 | |||
5f1f698530 | |||
729e88bc6d | |||
bffc7f9f1c | |||
011b272af6 | |||
ee359da751 | |||
6025e17186 | |||
93d7aca9e6 | |||
677c784b6d | |||
e69a367c33 | |||
14d0475d59 | |||
762d344e42 | |||
be5591f7dc | |||
7193f5a646 | |||
f46c2ad0f7 | |||
b0f7a264c2 | |||
4f3164a48a | |||
be55d661cb | |||
3de9fde672 | |||
a0582e918b | |||
18429d9cf9 | |||
b65df7c390 | |||
22d1be5ea4 | |||
18fc82f036 | |||
f5b843ec11 | |||
bad5d26969 | |||
951d741d90 | |||
fe6c9858a2 | |||
1df354d5f1 | |||
6119bc92ed | |||
e8140b3160 | |||
75789e574e | |||
c0c46e197f | |||
a0e6df7cfd | |||
1643412f1b | |||
3ed6edc323 | |||
fa7a331a66 | |||
939d402b1e | |||
492cbe48e9 | |||
a17e1f473a | |||
359f3e68ab | |||
5c62191f3b | |||
b04201de42 | |||
a15cbcba7b | |||
9019d90b1e | |||
d07b2bdf0a | |||
d05054755c | |||
1a89920430 | |||
54a836b734 | |||
8b3b07e32c | |||
d55b402269 | |||
24900b8fcc | |||
2368a087c0 | |||
994a1571b7 | |||
aed1d3848b | |||
93cf39cfe9 | |||
bdaf578f86 | |||
6079e96efa | |||
bb01e78123 | |||
41d8e223ce | |||
e1e1f3eafc | |||
9c1e016bb1 | |||
eaeb3c4106 | |||
1fb431ab36 | |||
124313cb16 | |||
d48b888075 | |||
f5aa90bdbd | |||
4bcb91ce2d | |||
97a1bcbbe1 | |||
f32b1ee5b2 | |||
711aa70d48 | |||
168a499811 | |||
d52fbeb1ae | |||
ce0ef10c8d | |||
81e19f5315 | |||
89a791b81e | |||
2d1caf9ded | |||
49b0494f36 | |||
60e2d8177b | |||
62e7a1c871 | |||
761dd48fa1 | |||
4a18a81b33 | |||
9eb0dd1cf5 | |||
bb0ee7d517 | |||
fe2b3accb3 | |||
78ad7bc003 | |||
f08744479a | |||
bf15ff693e | |||
48199b5d2e | |||
7556b9f590 | |||
03b7f12541 | |||
ecc5dfcef6 | |||
f33aab9cfb | |||
3875de7f80 | |||
69f44c2927 | |||
26398a692f | |||
e13baa8acb | |||
3c86eecf8b | |||
63c5cb8390 | |||
e3edd0410a | |||
eb5cf1ab33 | |||
b409175a25 | |||
a54938cb65 | |||
30a62a6621 | |||
dce3ed8051 | |||
8e5a20e59e | |||
337ff8b865 | |||
1d7e755a98 | |||
67a582b4a2 | |||
034a398515 | |||
58a72b0286 | |||
677d68428d | |||
d2ef5ccb24 | |||
66944cf3c1 | |||
9d9a1f6614 | |||
0b33948945 | |||
5e1631439a | |||
8992260264 | |||
f8f76e9f7d | |||
52b7040337 | |||
4986fd0f31 | |||
dc8578632c | |||
9a780127c0 | |||
0311f5ed77 | |||
b1b7c23166 | |||
0ca32ca6a7 | |||
1ab0f42fd1 | |||
856d343ed3 | |||
2c7037708b | |||
78a898db37 | |||
aeb4b18069 | |||
79c82c122a | |||
27ee00b069 | |||
af28e033a2 | |||
761e693984 | |||
d6c22a60bc | |||
a8012a3ea6 | |||
31ee90b3ff | |||
96d19efa5d | |||
1919e34eed | |||
043dda660b | |||
8c6a614157 | |||
09cc88062e | |||
2197e09307 | |||
d362858184 | |||
c118c05bb2 | |||
aa5f79257e | |||
f282d7a212 | |||
4c685a9ed9 | |||
55636436d2 | |||
5981a9362c | |||
c38bf658fc | |||
0e981ce95c | |||
40d0d6b63e | |||
a77970b5e7 | |||
ca327375c8 | |||
4f4ca50c75 | |||
1cf23bec90 | |||
3bdc3b764d | |||
a13294edf4 | |||
a85b60b95f | |||
def76724b5 | |||
eb5a339f56 | |||
d6b25bc76e | |||
c78a148766 | |||
cb564dc436 | |||
6d52949215 | |||
b0bec83900 | |||
0ee3117d6e | |||
96142339e0 | |||
3cf076fd82 | |||
2e4cd0384f | |||
a7dc943692 | |||
4b6d69d748 | |||
1145f010c6 | |||
d89e414ca7 | |||
58cd490639 | |||
f444003aee | |||
df3e2b55f9 | |||
09ac2fc5cf |
.gitea/workflows
.gitignoreREADME.mdREADME_aktuelle_Branchesdoc
PluginBau.pdf
pom.xmlStudienarbeiten
Studienarbeiten_Bachelorarbeiten
S2003_Felix_Reichenbach.pdfS2004_Markus_Haas.pdfS2004_Thomas_Ott.pdfS2005_Joerg_Baeuerle.pdfS2005_Markus_Melzer.pdfS2006_Juergen_Schmiing.pdfS2006_Thomas_Hornberger.pdfS2006_Timo_Holzherr.pdfS2007_Achim_Burger.pdfS2007_Arne_Luedtke.pdfS2008_Christian_Stresing.pdfS2008_Thorsten_Hake.pdfS2008_Thorsten_Hake_Christian_Stresing_Eclipse_Plugin.pdfS2008_Thorsten_Hake_Christian_Stresing_Testing.pdfS2016_Enrico_Schroedter.pdfS2016_Florian_Steurer.pdfS2017_Jan-Elric_Neumann.pdfS2021_Etienne_Zink.pdfS2022_Daniel_Holle.pdfS2023_Luca_Trumpfheller.pdf
pluginBau.mdresources
AllgemeinTest
Box.javBox_Main.javComplex.javFCTest1.javFCTest2.javFCTest3.javGenTest.javGenerics.javInfReturn.javInfReturnII.javInnerInf.javIteration.javList.javM.javOverloading.javOverloadingMain.javOverloading_Generics.javOverrideMain.javOverrideMainRet.javPair.javPair.javaPut.javRecursionCond.javStreamTest.javTest.javTestSubTypless.javTripleTest.javTwice.javTwice2.javVar.javVectorConstAdd.javVectorNotObject.javWildcard_Andi.javaddList.javwildcardPair.jav
bytecode
javFiles
AA.javAccess.javAddLong.javAnnotation.javBB.javBinaryInMeth.javBug112.javBug122.javBug123.javBug125.javBug285.javBug290A.javBug290B.javBug293.javBug295.javBug296.javBug297.javBug298.javBug300.javBug301.javBug302.javBug306.javBug307.javBug309.javBug310.javBug311.javBug312.javBug314.javBug325.javBug326.javBug328.javBug328B.classBug328B.javaBug98.javBugXXX.javCC.javChain.javCycle.classCycle.javDD.javEmptyClass.javExceptions.javExpressions.javFC_Matrix.javFac.javFaculty.javFacultyIf.javFacultyTyped.javFieldAccess.javFieldTph2.javFieldTphConsMeth.javFieldTphMMeth.javFields.javFor.javForEach.javFunctionalInterface.javGenerics2.javHelloWorld.javId.javInherit.javInherit2.javInstanceOf.javInterfaces.javLamRunnable.javLambda.javLambdaField.javLambdaRunnable.javLessEqual.javLessThan.javListenerOverload.javLiteral.javMatrix.javMatrixOP.javMerge.javMeth_Gen.javMethodCallGenerics.javMethodWildcardGen.javMethodsEasy.javOL.javOLConstructor.javOp1.javOp2.javOverloadPattern.javOverloading.javOverrideEquals.javOverrideRoot.classOverrideRoot.javaPackage.javPair.javPairNoGenerics.javPlus.javPostIncDec.javPreInc.javPut.javRecordTest.javRelOps.javScalar.javStatic.javSubclass.javSuperCall.javSuperclass.javSwitch.javSwitch2.javSwitchString.javTXGenerics.javTernary.javTph.javTph2.javTypeCast.javVector.javWhile.javWildcards.javY.javapplyLambda.javfc.javtest.javtest1.jav
insertGenerics
javFiles
TestAny.javTestAssign.javTestClassField.javTestContraVariant.javTestGGFinder.javTestLocalVarLambda.javTestMutualRecursion.javTestMutualRecursionWithField.javTestMutualRecursionWithField2.javTestMutualRecursionWithField3.javTestReturnVar.javTestSecondLineOfClassConstraints.javTestTPHsAndGenerics.javTestTPHsAndGenerics2.javTestThreeArgs.javTestTwoArgs.javTestTwoArgs2.javTestTwoCalls.javTestVector.javTestVectorArg.javTestVoidMeth.jav
insertGenericsJav
javFiles
EmptyMethod.javFaculty.javGenerics.javIfTest.javImport.javLambda.javLambda2.javLambda3.javLambdaRunnable.javMatrix.javMethods.javOp1.javSorting.javmathStruc.jav
packageTest
packageTest
syntaxtreegenerator
BinaryInMeth.astBox.astClassGenLam.astCycle.astFac.astFaculty.astField.astFieldTph2.astFieldTphConsMeth.astFieldTphMMeth.astGen.astId.astInf.astInstanceof.astKompTph.astLambda.astLambdaCapture.astMatrix.astMatrixOP.astMerge.astOL.astOLFun.astOLFun2.astOverloading.astPair.astPatternMatching.astPlus.astRecord.astRelOps.astScalar.astSealed.astSimpleCycle.astSorting.astSubMatrix.astSwitch.astTXGenerics.astTph.astTph2.astTph3.astTph4.astTph5.astTph6.astTph7.astTypedID.astVectorAdd.astVectorSuper.astY.astapplyLambda.ast
javFiles
mathStruc.astmathStrucInteger.asttestBytecode
src
main
antlr4
de
dhbwstuttgart
parser
java
de
dhbwstuttgart
bytecode
core
environment
ByteArrayClassLoader.javaCompilationEnvironment.javaDirectoryClassLoader.javaIByteArrayClassLoader.java
parser
JavaTXParser.javaSourceLoc.java
SyntaxTreeGenerator
FCGenerator.javaFieldEntry.javaStatementGenerator.javaSyntacticSugar.javaSyntaxTreeGenerator.javaTypeGenerator.java
scope
syntaxtree
ASTVisitor.javaAbstractASTWalker.javaClassOrInterface.javaConstructor.javaExpressionPattern.javaField.javaFormalParameter.javaGuardedPattern.javaMethod.javaParameterList.javaPattern.javaRecord.javaRecordPattern.javaSourceFile.javaStatementVisitor.java
factory
statement
Assign.javaAssignToField.javaBinaryExpr.javaBlock.javaBoolExpression.javaBreak.javaExpression.javaFieldVar.javaForEachStmt.javaForStmt.javaIfStmt.javaInstanceOf.javaLocalVar.javaMethodCall.javaNewClass.javaReturn.javaStaticClassName.javaSuper.javaSuperCall.javaSwitch.javaSwitchBlock.javaSwitchLabel.javaTernary.javaThis.javaThisCall.javaThrow.javaYield.java
type
visual
target
generate
ASTToTargetAST.javaBound.javaBoundsList.javaCycleFinder.javaGenerateGenerics.javaGenericsResult.javaGenericsResultSet.javaJavaGenerics.javaStatementToTargetExpression.javaTracingStatementVisitor.javaTxGenerics.java
tree
MethodParameter.javaTargetClass.javaTargetConstructor.javaTargetInterface.javaTargetMethod.javaTargetRecord.javaTargetStructure.java
expression
TargetBinaryOp.javaTargetBlock.javaTargetBreak.javaTargetComplexPattern.javaTargetContinue.javaTargetExpression.javaTargetFor.javaTargetForEach.javaTargetGuard.javaTargetIf.javaTargetInstanceOf.javaTargetLambdaExpression.javaTargetLiteral.javaTargetMethodCall.javaTargetNew.javaTargetPattern.javaTargetReturn.javaTargetSwitch.javaTargetTernary.javaTargetThrow.javaTargetTypePattern.javaTargetWhile.javaTargetYield.java
type
typedeployment
typeinference
assumptions
constraints
typeAlgo
unify
test
java
AllgemeinTest.javaTestComplete.javaTestPackages.javaTestTypeDeployment.java
constraintSimplify
general
packages
Bytecode.javaCheckPackageFolder.javaConsoleInterfaceTest.javaImportTest.javaLoadDefaultPackageClassesTest.javaOLOneFileTest.javaOLTest.javaParsePackageName.javamathStrucMatrixOPTest.java.txtmathStrucVectorTest.java
parser
AntlrTest.javBoundedParameter.javCastTest.javExtendsTest.javFeatherWeightJava.javFieldInitializationTest.javFieldVarTest.javGeneralParserTest.javaGenericFieldVarTest.javImportTest.javImportTest2.javImportTestGeneric.javNewTest.javOpratorTest.javPackageNameTest.javStatementsTest.javStructuralTypes.javWhileTest.jav
syntaxtreegenerator
targetast
typeinference
visualisation
resources
25
.gitea/workflows/build_and_test.yml
Normal file
25
.gitea/workflows/build_and_test.yml
Normal 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
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -19,7 +19,9 @@ bin
|
||||
.DS_Store
|
||||
.project
|
||||
.settings/
|
||||
.vscode/
|
||||
/target/
|
||||
settings.json
|
||||
|
||||
#
|
||||
manually/
|
||||
|
9
README.md
Normal file
9
README.md
Normal file
@ -0,0 +1,9 @@
|
||||
Prototype
|
||||
|
||||
run with:
|
||||
|
||||
mvn test -Dtest="TestComplete#matrixTest"
|
||||
|
||||
mvn test -Dtest="typeinference.JavaTXCompilerTest#importTest"
|
||||
|
||||
then the output is in: /tmp/output
|
@ -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.
0
doc/Studienarbeiten/S2004_Thomas_Ott.pdf → doc/Studienarbeiten_Bachelorarbeiten/S2004_Thomas_Ott.pdf
0
doc/Studienarbeiten/S2004_Thomas_Ott.pdf → doc/Studienarbeiten_Bachelorarbeiten/S2004_Thomas_Ott.pdf
BIN
doc/Studienarbeiten_Bachelorarbeiten/S2022_Daniel_Holle.pdf
Normal file
BIN
doc/Studienarbeiten_Bachelorarbeiten/S2022_Daniel_Holle.pdf
Normal file
Binary file not shown.
14165
doc/Studienarbeiten_Bachelorarbeiten/S2023_Luca_Trumpfheller.pdf
Normal file
14165
doc/Studienarbeiten_Bachelorarbeiten/S2023_Luca_Trumpfheller.pdf
Normal file
File diff suppressed because it is too large
Load Diff
24
doc/pluginBau.md
Normal file
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.
|
30
pom.xml
30
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>
|
||||
<source>22</source>
|
||||
<target>22</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<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>
|
||||
<plugin>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr4-maven-plugin</artifactId>
|
||||
@ -74,6 +89,7 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
@ -112,8 +128,6 @@ 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>
|
||||
<mainClass>de.dhbwstuttgart.core.ConsoleInterface</mainClass>
|
||||
</properties>
|
||||
<distributionManagement>
|
||||
@ -123,4 +137,4 @@ http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<url>file:///${project.basedir}/maven-repository/</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
</project>
|
||||
</project>
|
@ -1,13 +1,10 @@
|
||||
class Box<A>{
|
||||
void m(A a){}
|
||||
class Box<A> {
|
||||
|
||||
A a;
|
||||
|
||||
Box(A a) {
|
||||
this.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();
|
||||
}
|
||||
}
|
22
resources/AllgemeinTest/Complex.jav
Normal file
22
resources/AllgemeinTest/Complex.jav
Normal 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);
|
||||
}
|
||||
}
|
@ -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); }
|
||||
}
|
7
resources/AllgemeinTest/InfReturn.jav
Normal file
7
resources/AllgemeinTest/InfReturn.jav
Normal file
@ -0,0 +1,7 @@
|
||||
public class InfReturn {
|
||||
m(a) {
|
||||
var ret;
|
||||
a = ret;
|
||||
return ret;
|
||||
}
|
||||
}
|
8
resources/AllgemeinTest/InfReturnII.jav
Normal file
8
resources/AllgemeinTest/InfReturnII.jav
Normal file
@ -0,0 +1,8 @@
|
||||
public class InfReturnII {
|
||||
m(a, b) {
|
||||
var ret;
|
||||
a = ret;
|
||||
b = ret;
|
||||
return ret;
|
||||
}
|
||||
}
|
7
resources/AllgemeinTest/InnerInf.jav
Normal file
7
resources/AllgemeinTest/InnerInf.jav
Normal file
@ -0,0 +1,7 @@
|
||||
class InnerInf {
|
||||
m(a, b) {
|
||||
var i;
|
||||
a = i;
|
||||
b = i;
|
||||
}
|
||||
}
|
43
resources/AllgemeinTest/Iteration.jav
Normal file
43
resources/AllgemeinTest/Iteration.jav
Normal file
@ -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);
|
||||
}
|
||||
}
|
||||
|
46
resources/AllgemeinTest/List.jav
Normal file
46
resources/AllgemeinTest/List.jav
Normal 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);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
import java.util.List;
|
||||
class M {
|
||||
void m(p, p2){
|
||||
|
||||
new addList().addLists(p, p2);
|
||||
}
|
||||
}
|
7
resources/AllgemeinTest/Overloading.jav
Normal file
7
resources/AllgemeinTest/Overloading.jav
Normal 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; }
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
8
resources/AllgemeinTest/RecursionCond.jav
Normal file
8
resources/AllgemeinTest/RecursionCond.jav
Normal 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;
|
||||
}
|
||||
}
|
14
resources/AllgemeinTest/StreamTest.jav
Normal file
14
resources/AllgemeinTest/StreamTest.jav
Normal file
@ -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 +1,9 @@
|
||||
class Test {
|
||||
a;
|
||||
Test b;
|
||||
import java.lang.Boolean;
|
||||
import java.lang.Integer;
|
||||
|
||||
public class Test {
|
||||
fac = (x) -> {
|
||||
if (x == 1) { return 1; }
|
||||
return x * fac.apply(x - 1);
|
||||
};
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
19
resources/AllgemeinTest/TripleTest.jav
Normal file
19
resources/AllgemeinTest/TripleTest.jav
Normal 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());
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
class Twice {
|
||||
twice = f -> x -> f.apply(f.apply(x));
|
||||
}
|
12
resources/AllgemeinTest/Twice2.jav
Normal file
12
resources/AllgemeinTest/Twice2.jav
Normal 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;
|
||||
}
|
@ -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,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
|
||||
}
|
||||
}
|
@ -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"; }
|
||||
}
|
14
resources/bytecode/javFiles/Access.jav
Normal file
14
resources/bytecode/javFiles/Access.jav
Normal 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 {
|
||||
}
|
8
resources/bytecode/javFiles/Annotation.jav
Normal file
8
resources/bytecode/javFiles/Annotation.jav
Normal file
@ -0,0 +1,8 @@
|
||||
class Base {
|
||||
public void foo() {}
|
||||
}
|
||||
|
||||
public class Annotation extends Base {
|
||||
@Override
|
||||
public void foo() {}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
import java.lang.Integer;
|
||||
import AA;
|
||||
|
||||
public class BB extends AA { }
|
@ -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);
|
||||
}
|
||||
}
|
7
resources/bytecode/javFiles/Bug112.jav
Normal file
7
resources/bytecode/javFiles/Bug112.jav
Normal file
@ -0,0 +1,7 @@
|
||||
public class Bug112 {
|
||||
public m(x) {
|
||||
var y;
|
||||
x = y;
|
||||
return y;
|
||||
}
|
||||
}
|
12
resources/bytecode/javFiles/Bug122.jav
Normal file
12
resources/bytecode/javFiles/Bug122.jav
Normal 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++) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13
resources/bytecode/javFiles/Bug123.jav
Normal file
13
resources/bytecode/javFiles/Bug123.jav
Normal 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;
|
||||
}
|
||||
}
|
16
resources/bytecode/javFiles/Bug125.jav
Normal file
16
resources/bytecode/javFiles/Bug125.jav
Normal 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();
|
||||
}
|
||||
}
|
15
resources/bytecode/javFiles/Bug285.jav
Normal file
15
resources/bytecode/javFiles/Bug285.jav
Normal 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();
|
||||
}
|
||||
}
|
7
resources/bytecode/javFiles/Bug290A.jav
Normal file
7
resources/bytecode/javFiles/Bug290A.jav
Normal file
@ -0,0 +1,7 @@
|
||||
import Bug290B;
|
||||
|
||||
public class Bug290A {
|
||||
public void m() {
|
||||
new Bug290B();
|
||||
}
|
||||
}
|
11
resources/bytecode/javFiles/Bug290B.jav
Normal file
11
resources/bytecode/javFiles/Bug290B.jav
Normal 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() + "$$";
|
||||
}
|
||||
}
|
13
resources/bytecode/javFiles/Bug293.jav
Normal file
13
resources/bytecode/javFiles/Bug293.jav
Normal 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();
|
||||
}
|
||||
|
18
resources/bytecode/javFiles/Bug295.jav
Normal file
18
resources/bytecode/javFiles/Bug295.jav
Normal 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;
|
||||
}
|
||||
}
|
||||
|
11
resources/bytecode/javFiles/Bug296.jav
Normal file
11
resources/bytecode/javFiles/Bug296.jav
Normal file
@ -0,0 +1,11 @@
|
||||
import java.lang.Integer;
|
||||
|
||||
public class Bug296 {
|
||||
public static m1() {
|
||||
return m2();
|
||||
}
|
||||
|
||||
static m2() {
|
||||
return 10;
|
||||
}
|
||||
}
|
11
resources/bytecode/javFiles/Bug297.jav
Normal file
11
resources/bytecode/javFiles/Bug297.jav
Normal 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);
|
||||
}
|
||||
}
|
17
resources/bytecode/javFiles/Bug298.jav
Normal file
17
resources/bytecode/javFiles/Bug298.jav
Normal 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;
|
||||
}
|
||||
}
|
17
resources/bytecode/javFiles/Bug300.jav
Normal file
17
resources/bytecode/javFiles/Bug300.jav
Normal 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";
|
||||
}
|
||||
}
|
4
resources/bytecode/javFiles/Bug301.jav
Normal file
4
resources/bytecode/javFiles/Bug301.jav
Normal file
@ -0,0 +1,4 @@
|
||||
import java.util.HashSet;
|
||||
|
||||
public class Bug301<A> extends HashSet<A> {
|
||||
}
|
11
resources/bytecode/javFiles/Bug302.jav
Normal file
11
resources/bytecode/javFiles/Bug302.jav
Normal 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>());
|
||||
}
|
||||
}
|
13
resources/bytecode/javFiles/Bug306.jav
Normal file
13
resources/bytecode/javFiles/Bug306.jav
Normal 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);
|
||||
}
|
||||
}
|
46
resources/bytecode/javFiles/Bug307.jav
Normal file
46
resources/bytecode/javFiles/Bug307.jav
Normal 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);
|
||||
}
|
||||
}
|
16
resources/bytecode/javFiles/Bug309.jav
Normal file
16
resources/bytecode/javFiles/Bug309.jav
Normal 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;
|
||||
}
|
||||
}
|
9
resources/bytecode/javFiles/Bug310.jav
Normal file
9
resources/bytecode/javFiles/Bug310.jav
Normal file
@ -0,0 +1,9 @@
|
||||
import java.lang.Integer;
|
||||
import java.lang.String;
|
||||
|
||||
public class Bug310 {
|
||||
Integer i = 3;
|
||||
public toString() {
|
||||
return i.toString();
|
||||
}
|
||||
}
|
10
resources/bytecode/javFiles/Bug311.jav
Normal file
10
resources/bytecode/javFiles/Bug311.jav
Normal file
@ -0,0 +1,10 @@
|
||||
import java.lang.String;
|
||||
|
||||
public class Bug311 {
|
||||
Bug311A i = new Bug311A();
|
||||
public toString() {
|
||||
return i.toString();
|
||||
}
|
||||
}
|
||||
|
||||
class Bug311A {}
|
8
resources/bytecode/javFiles/Bug312.jav
Normal file
8
resources/bytecode/javFiles/Bug312.jav
Normal file
@ -0,0 +1,8 @@
|
||||
public class Bug312 {
|
||||
Bug312A i = new Bug312A();
|
||||
public main() {
|
||||
if (i == null) {}
|
||||
}
|
||||
}
|
||||
|
||||
class Bug312A {}
|
13
resources/bytecode/javFiles/Bug314.jav
Normal file
13
resources/bytecode/javFiles/Bug314.jav
Normal 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());
|
||||
}
|
||||
}
|
13
resources/bytecode/javFiles/Bug325.jav
Normal file
13
resources/bytecode/javFiles/Bug325.jav
Normal 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();
|
||||
}
|
||||
}
|
8
resources/bytecode/javFiles/Bug326.jav
Normal file
8
resources/bytecode/javFiles/Bug326.jav
Normal 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);
|
||||
}
|
||||
}
|
8
resources/bytecode/javFiles/Bug328.jav
Normal file
8
resources/bytecode/javFiles/Bug328.jav
Normal file
@ -0,0 +1,8 @@
|
||||
import java.lang.Integer;
|
||||
import Bug328B;
|
||||
|
||||
public class Bug328 extends Bug328B {
|
||||
public Bug328() {
|
||||
super(1);
|
||||
}
|
||||
}
|
BIN
resources/bytecode/javFiles/Bug328B.class
Normal file
BIN
resources/bytecode/javFiles/Bug328B.class
Normal file
Binary file not shown.
3
resources/bytecode/javFiles/Bug328B.java
Normal file
3
resources/bytecode/javFiles/Bug328B.java
Normal file
@ -0,0 +1,3 @@
|
||||
public class Bug328B {
|
||||
public Bug328B(int a) {}
|
||||
}
|
@ -2,9 +2,9 @@ import java.util.Vector;
|
||||
import java.lang.Integer;
|
||||
import java.lang.String;
|
||||
|
||||
class WildcardCaptureConversionTest {
|
||||
public class Bug98 {
|
||||
|
||||
m(x, y ,z) {
|
||||
public m(x, y ,z) {
|
||||
x = new Vector<Integer>();
|
||||
y = new Vector<String>();
|
||||
x.add(1);
|
||||
@ -13,4 +13,4 @@ class WildcardCaptureConversionTest {
|
||||
//String s = y.elementAt(0);
|
||||
return z.vectorAddAll(x, y);
|
||||
}
|
||||
}
|
||||
}
|
16
resources/bytecode/javFiles/BugXXX.jav
Normal file
16
resources/bytecode/javFiles/BugXXX.jav
Normal 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;
|
||||
}
|
||||
}
|
@ -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"; }
|
||||
}
|
||||
|
13
resources/bytecode/javFiles/Chain.jav
Normal file
13
resources/bytecode/javFiles/Chain.jav
Normal 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;
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user