Verbesserung
Wichtig
Detail
Detail
Detail
#27881
Suboptimale Prüfung auf isDerived() in der Implementierung des TL-Scripts copy()
In der Methode com.top_logic.model.search.expr.config.operations.Copy.InitialOperation.copyValues(TLObject, TLObject) wird unter anderem geprüft, ob das zu kopierende Attribut berechnet ist (part.isDerived()), und falls ja, wird es ignoriert.
Diese Prüfung findet jedoch auf dem Attribut des Quellobjekt statt, sollte jedoch auf dem Attribut des Zielobjekts geprüft werden.
Man kann bei der Kopieroperation den Typ wechseln. Kopiert man von einem Typ, der ein Attribut als berechnet deklariert in einen Typ, der das Attribut schreibbar definiert, so sollte die Kopieroperation den berechneten Wert in das schreibbare Attribut setzen.
Aus einem read-only-Attribut kann man weiterhin lesen und in ein writeable Attribut schreiben, während man in ein read-only-Attribut nicht schreiben kann, auch wenn das Quellattribut writeable ist.
Test
- test.com.top_logic.model.search.expr.TestSearchExpression.testCopyConstructor()