Assignment/Object Creation fails for non-@ref/@ref:external properties when reusing a value object previously assigned to an @ref/@ref:external property.

Open
#15 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
python
Domain
backend

Research direction

No files, tests, or entry points are identified. Start by reproducing reuse of one value object from a @ref or @ref:external property on an untagged property, covering both direct assignment and construction or deserialization; done means valid reuse succeeds without requiring a clone.

Written by the indexing model from the issue text.

Description

Summary

Assignment (and/or object creation) fails for properties without @ref / @ref:external metadata when the same value object instance was previously assigned to a different property that is decorated with @ref or @ref:external.

Observed Behaviour

When a value object V is first assigned to a “tagged” property (e.g., propTagged annotated with @ref or @ref:external), subsequent attempts to assign that same object V to an “untagged” property (e.g., propPlain with no @ref/@ref:external) fail.

This can happen during:

  • direct property assignment, and/or
  • object construction / deserialization where the same value object is reused across properties.

Expected Behavior

Reusing the same value object instance across different properties should not cause assignment/creation to fail solely due to metadata differences between the properties. If V is valid for propPlain by type/shape, it should assign successfully regardless of whether it was previously used with a @ref / @ref:external tagged property.

Workaround

  • Cloning/copying the value object before assigning to the untagged property.
Dominant language
Python
Stars
0
Forks
3
Avg merge
5m
Merged PRs (30d)
1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from finos/rune-python-runtime

All issues in finos/rune-python-runtime

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.