Major
Nice to have
Detail
#25217
Layout-Export führt zu invaliden Komponenten-Referenzen bei Referenzierung einer bestehenden Komponente
#25327
Modell-Editor: Falsche Kompositionsmarker, wenn Container-Typ in Diagramm von Content-Typ gezogen wird
Enhancement
Major
#25731
TLExpression: Integer nach Double Konvertierung mit Rechenoperationen
Grundsätzlich scheint die Division zweier Integer immer einen Int-Wert zu liefern, was häufig nicht gewünscht ist. Hierbei bestimmt jeweils das linke Argument den Ergebnistyp.
Allerdings kann es durch interne Umformungen des Ausdrucks auch dazu kommen, dass der Ergebnistyp eines eingegeben Ausdrucks auch mit diesem Wissen nicht richtig vorhergesagt werden kann.
Anwendungsbeispiele sind Durchschnittsberechnungen (Summe / Menge) oder prozentuale Anteile (Anteil / Menge) * 100 - hierbei sind die Eingangsdaten häufig ganzzahlig (Integer), aber es wird ein Double als Ergebnis erwartet.
Verbesserung
- Arithmetische Operationen werden immer mit Double ausgeführt.
- Arithmetische Operationen haben implizit Flat-Map-Semantik: [1, 2] * 3 == [3, 6] . Die Collection darf nur links stehen.
- Der Plus-Operator kann auch Strings verketten: "a" + "b" == "ab" . Es wird immer eine String-Verkettung ausgeführt, wenn eines der beiden Argumente ein String ist.
- Die Rückgabe eines berechneten Attributs wird vom Typ her an den definierten Rückgabetyp angepasst bzw. geprüft.
- Zwei neue Operationen floor() und ceil(), um ab bzw. aufzurunden, siehe doc:ceil und doc:floor.
Code-Migration
Wo sich vorher auf das Abrunden bei einer Integer-Operation verlassen wurde muss jetzt explizit über floor() abgerundet werden.
Test
- TestSearchExpression (diverse Testfälle).