Enhancement
Critical
Major
Detail
Detail
#25907
Layout editor: inconsistent behavior of unfold state, selection and reaction to object creation
#25951
Application tests: CheckLabeledExecutabilityOp fails to assert non-executability of literal ResKey reasons.
#25952
Model Editor: Enum default provider does not work for enum references for which singleton link storage was explicitly selected
#26002
ConfigurationItem-valued properties with format annotations may cause an attempt to create abstract config items when deserializing null values
#26012
Help editor crashes when a user has chosen a language that is not in the supported languages of the application
#26039
Gridcomponent: Display of context menu for new (transient) row object leads to UnsupportedOperationException
#26085
An attribute of type tl.model.search:Expr is not displayed in the form above a TL script editor
#26111
Context menu commands for table rows are erroneously executed on the table model when opening the context menu in the background of the table
#26153
Migration: Replay fails if string values with line breaks are contained in the dataset where a line ends with a semicolon
#26171
A TL script expression entered in a wizard template is reformatted when transferred to the final template
#26223
TL script: Under unfavorable conditions wrong parameter values when evaluating local functions
Bugfix
Detail
#26069
TL script: Evaluate ToString only at compile time if arguments are primitives.
The evaluation of a "simple" function at compile time may only happen if all arguments are primitives.
Use case
In the context of ticket #23472 the model was extended with new types to test the DnD functionality. Among other things, one attribute had a storage algorithm with a "query by expression":
#!xml <property name="name" type="tl.core:String" > <annotations> <storage-algorithm> <query> <expr>toString(#("All library elements"@en, "All library elements"@en))</expr> </query> </storage-algorithm> </annotations> </property>
When the application starts, it now tries to evaluate the toString function because the literal (here: tl:ResKey) is "constant". However, this is wrong, because the state of the application (here: Selected language of the user) determines the value of the key significantly. The evaluation of the expression must be done dynamically if at least one of the arguments is not a primitive value.
Test
test.com.top_logic.model.search.expr.TestSearchExpression