forked from JavaTX/JavaCompilerCore
JavaTX Compiler in JavaTX
.externalToolBuilders | ||
.settings | ||
bin | ||
doc | ||
examples | ||
lib | ||
notizen | ||
Papers/FMCO2005 | ||
src/de/dhbwstuttgart | ||
test | ||
tools | ||
.classpath | ||
.cvsignore | ||
.gitignore | ||
.project | ||
log4j.xml | ||
Readme.md | ||
README.me | ||
TODO.md |
Typinferenz
ResultSet
-
Spezifisch für jedes SourceFile (nicht für jede Klasse)
-
mehrere ResultSets pro Klasse
-
Enthält:
- constraintPairs
- unifiedConstraints
TypeInsertSet
- Stellt die Typeinsetzung für eine der generierten Lösungen dar
- Setzt alle Typen und generischen Variablen ein, welche zu dieser Lösung gehören
Ablauf Typinferenz:
-
Parsen
- (Parser postProcessing)
-
Typinferenz
- Anfangspunkt SourceFile
- löst geparste Typen zu richtigen Typen auf (RefTypes, GenericVar)
- setzt TPHs ein
- bildet Constraints, welche in ResultSet gesammelt werden. ResultSet wird durch Syntaxbaum gereicht.
- Assumptions generieren
- Wird im Syntaxbaum für jeden Knoten ausgeführt und die Assumptions für darunterliegende Knoten gebildet
-
Unifizierung
- wird im SourceFile aufgerufen
- unifiziert Constraints aller im SourceFile vorkommenden Klassen
-
Erstellen von TypeInsertSet
- Durchlaufen des Syntaxbaumes
- Jeder Knoten erstellt TypeInsertSets anhand des ResultSets.
- Bei Knoten, welche Generische Variablen beinhalten können werden GenericTypeInsertPoints erstellt
-
Einsetzen eines TypeInsertSet (optional)
- Auf allen TypeInsertPoints die getUnresolvedTPHs-Methoden aufrufen
- Alle Abhängigkeiten dieser