Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't find hidden property instead of the hiding property #1963

Merged
merged 2 commits into from
Sep 4, 2024

Commits on Sep 4, 2024

  1. Don't find hidden property instead of the hiding property

    When `TypeResolver:TryFindMemberAccessor` resolves a property, it might find one that was hidden where the non-hidden one would normally be found by C++ member access.
    
    For example, when you access the `A` member from JavaScript, you may get the hidden one (I say "may" because `Type:GetProperties` does not specify an order in a number of versions of .NET supported by jint).
    
    ```
    class Foo
    {
        public int A {get;set;}
        public string B {get;set;}
    }
    
    class Bar :  Foo
    {
    	public new float A { get; set; }
    }
    ```
    
    ([This dotnet fiddle](http://dotnetfiddle.net/NQRXIJ) shows that both `A` elements are iterated by `GetProperties` even though if `b` is a `Bar`, `b.A` unambiguously refers to `Bar:A`)
    
    This change ensures that in the case where a property in a derived class hides another, the derived one is resolved to.
    mspertus committed Sep 4, 2024
    Configuration menu
    Copy the full SHA
    14ab9bc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    55237d6 View commit details
    Browse the repository at this point in the history