JavaCompilerCore/Readme.md

42 lines
1.2 KiB
Markdown
Raw Normal View History

# Typinferenz
## ResultSet
* Spezifisch f<>r jedes SourceFile (nicht f<>r jede Klasse)
* mehrere ResultSets pro Klasse
*
* Enth<74>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<65>ren
## Ablauf Typinferenz:
1. Parsen
* (Parser postProcessing)
2. 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<65>hrt und die Assumptions f<>r darunterliegende Knoten gebildet
*
3. Unifizierung
* wird im SourceFile aufgerufen
* unifiziert Constraints aller im SourceFile vorkommenden Klassen
4. Erstellen von TypeInsertSet
* Durchlaufen des Syntaxbaumes
* Jeder Knoten erstellt TypeInsertSets anhand des ResultSets.
* Bei Knoten, welche Generische Variablen beinhalten k<>nnen werden GenericTypeInsertPoints erstellt
2014-05-07 07:36:31 +00:00
5. Einsetzen eines TypeInsertSet (optional)
1. Auf allen TypeInsertPoints die getUnresolvedTPHs-Methoden aufrufen
2. Alle Abh<62>ngigkeiten dieser