Community
Participate
Working Groups
Discovered by Thomas Risberg. multipart problem. First problem is that BinaryTypeBindings deliberately discard synthetic methods when populating their method tables. This means declare annotation is not processed (it is marked synthetic), since it is not there it cannot be found by the lookup code that wants to discover the annotation.
step (1), make them non-synthetic This then reveals the problem that we don't walk the hierarchy to find them. If they aren't found on the concrete sub-aspect then we fail. Added code to walk the hierarchy. The walker code then had to be enhanced to allow that it may walk from a source artifact to a binary artifact. Then had to allow for it encountering a parameterized type binding during the walk. test cases added.
one remaining issue I worry about... users probably expect declare @type statements to be independent (not subject to overriding). However, due to their representation as methods whose names have an int suffix, a subtype will override a super!!!!! raised as bug 322282
test and fix committed