aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectGUI.cpp
diff options
context:
space:
mode:
authorAlex Zinenko <zinenko@google.com>2021-06-16 16:31:17 +0200
committerAlex Zinenko <zinenko@google.com>2021-06-17 10:25:35 +0200
commita4f81b2054c30954c6739532b923f2b223bc7d77 (patch)
treeba0a63a74df49969b989eee68c944fd38fee5ea7 /lldb/source/Commands/CommandObjectGUI.cpp
parent25fa67868b36c99d2704bd291b3b495737f16f0e (diff)
downloadllvm-a4f81b2054c30954c6739532b923f2b223bc7d77.zip
llvm-a4f81b2054c30954c6739532b923f2b223bc7d77.tar.gz
llvm-a4f81b2054c30954c6739532b923f2b223bc7d77.tar.bz2
[mlir] ODS: emit interface traits outside of the interface class
ODS currently emits the interface trait class as a nested class inside the interface class. As an unintended consequence, the default implementations of interface methods have implicit access to static fields of the interface class, e.g. those declared in `extraClassDeclaration`, including private methods (!), or in the parent class. This may break the use of default implementations for external models, which are not defined in the interface class, and generally complexifies the abstraction. Emit intraface traits outside of the interface class itself to avoid accidental implicit visibility. Public static fields can still be accessed via explicit qualification with a class name, e.g., `MyOpInterface::staticMethod()` instead of `staticMethod`. Update the documentation to clarify the role of `extraClassDeclaration` in interfaces. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D104384
Diffstat (limited to 'lldb/source/Commands/CommandObjectGUI.cpp')
0 files changed, 0 insertions, 0 deletions