Skip to content

Comments

Fix derived type being tracked as base type#73

Open
oscar54321 wants to merge 2 commits intojoelweiss:masterfrom
oscar54321:Fix-DerivedTypeBeingTrackedAsBaseType
Open

Fix derived type being tracked as base type#73
oscar54321 wants to merge 2 commits intojoelweiss:masterfrom
oscar54321:Fix-DerivedTypeBeingTrackedAsBaseType

Conversation

@oscar54321
Copy link

@oscar54321 oscar54321 commented Oct 11, 2021

Dear Joel,

#1 I took the liberty of making changes to address the issue #72 when collection item proxies created were of incorrect type. Please find PR below that addresses the issue.

#2 This is something I am not very fluent with. My gut tells me that the declaration below
public interface IChangeTrackable<T> : IChangeTrackable
should be changed to

public interface IChangeTrackable<out T> : IChangeTrackable (i.e. to to being contravariant).

This, however, causes conflicts with GetOriginalValue declaration.

TResult GetOriginalValue<TResult>(Expression<Func<T, TResult>> selector);
I am, unfortunately, not quite at arm lengths with contra- and co- variant interfaces and cannot clearly propose the best plant of action. Besides this strategical idea, my changes are quite limited and all the existing tests pass.

Vladimir Gaytanov (Developer) added 2 commits October 10, 2021 23:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant