fix CoCo error 0x10AA1 - imported and quoted PartDef resolution#153
fix CoCo error 0x10AA1 - imported and quoted PartDef resolution#153linggd wants to merge 5 commits into
Conversation
| @@ -1,18 +1,23 @@ | |||
| package parser; | |||
| package cocos; | |||
There was a problem hiding this comment.
Die Änderungen an dieser Datei scheinen zu sein:
##### Changed
* ApolloTest baut jetzt auch Symboltabelle auf und wurde vorbereitet fürs Testen der CoCos
- Deswegen von Paket "parser" nach "cocos" verschoben
Bitte in einen getrennten MR packen
|
|
||
| var scope = node.getEnclosingScope(); | ||
|
|
||
| // Unnamed PartUsages are allowed and are ignored by this check. |
There was a problem hiding this comment.
Die Änderungen an dieser Datei scheinen zu sein:
##### Fixed
* Anonyme PartUsages haben zu Crashes bei der Überprüfung der Eindeutigkeit des Namens geführt
- Werden jetzt von der CoCo ignoriert
Bitte in einen getrennten MR packen
| @Override | ||
| public void check(ASTPartUsage node) { | ||
| var nonExistent = node.streamSpecializations() | ||
| .filter(s -> s instanceof ASTSysMLTyping) |
There was a problem hiding this comment.
Diese Änderung ist nicht ausreichend erklärt. Könntest du bitte ein minimalen Beispielmodell angeben, für das diese CoCo fälschlicherweise einen Fehler meldet, in: https://git.rwth-aachen.de/montibelle/frontend/transformer/sysmltransformer/-/work_items/323
Die Änderung wir aus diesem MR entfernt. Dann wird im angegebenen Ticket das Problem festgestellt, sende mir auf Slack einen Nachricht, sobald ich mir das anschauen kann. Danach klären wir, wie die Lösung aussehen wird.
| * Before continuing into the enclosing scope, apply the | ||
| * imports declared in the current scope. | ||
| */ | ||
| collectImportsFromScope(this, importStatements); |
There was a problem hiding this comment.
Die Änderungen hier scheinen u.A. auf diese Zeile zurückführbar zu sein:
Imported PartDefs. Import-aware resolution existed for resolveType(), but not for resolvePartDef().,
Wir werden für diesen Teil des Problems die entsprechenden Stellen (zB. die CoCo PartTypeDefExists) so umbauen, dass sie mit resolveType statt resolvePartDef arbeiten. Die Änderungen dazu hier werden erstmal wieder rückgängig gemacht
| * First try normal resolution. Only if that fails, resolve the imported | ||
| * package and search for the unchanged name inside its local scope. | ||
| */ | ||
| if (result.isEmpty() && name.contains(".")) { |
There was a problem hiding this comment.
Dieser Spezialfall ist nicht ausreichend diskutiert, entfernen hier alles dazu und klären zuerst alle Probleme und mögliche Lösungen: https://git.rwth-aachen.de/montibelle/frontend/transformer/sysmltransformer/-/work_items/324
|
@linggd bitte erkläre kurz was mit "Imports declared in the current package scope. The existing logic only checked the enclosing scope and therefore missed these imports.," gemeint ist und welche der Änderungen zu diesem Punkt gehören. Bis auf diesen Punkt wurden alle anderen Inhalte in eigene Tickets verlagert und werden in getrennten PRs behandelt. |
ErklärungDie Methode Bei diesem Modell funktioniert das: Beim Auflösen von Wheel ist der aktuelle Scope Im Apollo-Modell liegt aber der Part direkt im Package: Hier wird Beim Auflösen von Der Import steht aber im aktuellen Die neue Implementierung sucht zuerst die Imports im aktuellen Scope und geht danach weiter zum Enclosing Scope. Die Änderung gehört zu : |
# Conflicts: # language/src/test/java/cocos/ApolloTest.java
…finitionExistsCoCo and fix current scope imports in type resolution
6feb30a to
c20d4b6
Compare


The Apollo-11 models can already be parsed #146 . The symbol resolution and CoCos are adapted so that the models also pass the CoCos.
2 of 5 CoCo errors addressed
0x10AA1— PartDef resolutionApollo introduced several cases that were not covered by the previous models:
:typing and:>specialization. The CoCo incorrectly checked both as PartDefs.,resolveType(), but not forresolvePartDef().,'Roger B. Chaffee'. The dots were incorrectly interpreted as qualification separators.,These cases exposed missing or incorrect behavior in the PartDef resolution.
Changelog
Fix