TracePoint: Add event type for constant access
We've made a PR to add new :constant_access TracePoint event. https://github.com/ruby/ruby/pull/4683
Burke Libbey made some first steps on this idea a few years ago #13133 and we improved his patch based on the comment by ko1.
As mentioned in the issue above, this patch allows us to enable boundaries between packages/components.
Burke's proof-of-concept gem might help you understand more concrete usage of this patch.
The proof-of-concept gem works like the below and this will help us manage large codebases with lots of dependencies.
package 'product' class Book < ApplicationRecord belongs_to :user end package 'user' class User < ApplicationRecord has_many :books end user = User.first user.books # => VisibilityError (can't access Book from User)