You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Bug description: When a class implements an interface method, although it is marked hidden, the interface method still appears as a node.
This is a regression in 2.0 and can be traced back to language changes to fix polymorphism. In this change polymorphism support was added to interfaces where the interface method was allowed to accept a derived type and the node would at runtime resolve to the concrete implementation of the method matching the derived type.
This fix is to hide the interface methods altogether to address this issue as well as to remove any confusion of having extraneous interface nodes.
When attribute IsVisibleInDynamoLibrary(false) is defined on a class the following should be the expectation:
The current class is hidden from both library and search
Interface nodes should always be hidden (even if they are implemented by derived classes) as they do not have any implementation and their derived class implementations would be exposed as nodes if needed
The second issue is with the IsVisibleInDynamoLibrary(false) attribute not taking effect on an enum, which is a regression from 1.3.X. This can be traced back to the change made here . This too has been fixed, which includes the change to not have to individually set the attributes on each enum field. The attributes, IsVisibleInDynamoLibrary and Obsolete can now be applied globally on the enum, which now takes effect on all of the fields as well.
aparajit-pratap
changed the title
fix broken behavior of IsVisibleInDynamoLibrary attribute with interf…
Fix broken behavior of IsVisibleInDynamoLibrary attribute with interfaces
Nov 13, 2018
aparajit-pratap
changed the title
Fix broken behavior of IsVisibleInDynamoLibrary attribute with interfaces
Fix broken behavior of IsVisibleInDynamoLibrary attribute with interfaces and Enums
Nov 14, 2018
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
https://jira.autodesk.com/browse/QNTM-4094
Bug description: When a class implements an interface method, although it is marked hidden, the interface method still appears as a node.
This is a regression in 2.0 and can be traced back to language changes to fix polymorphism. In this change polymorphism support was added to interfaces where the interface method was allowed to accept a derived type and the node would at runtime resolve to the concrete implementation of the method matching the derived type.
This fix is to hide the interface methods altogether to address this issue as well as to remove any confusion of having extraneous interface nodes.
When attribute
IsVisibleInDynamoLibrary(false)
is defined on a class the following should be the expectation:The second issue is with the
IsVisibleInDynamoLibrary(false)
attribute not taking effect on an enum, which is a regression from 1.3.X. This can be traced back to the change made here . This too has been fixed, which includes the change to not have to individually set the attributes on each enum field. The attributes,IsVisibleInDynamoLibrary
andObsolete
can now be applied globally on the enum, which now takes effect on all of the fields as well.Declarations
Check these if you believe they are true
*.resx
filesReviewers
@QilongTang