Sha256: 9867a2e81d4281d364ba58d0173f61fb4f6f2dcda78a8ff2d8471ca4b38f02b0

Contents?: true

Size: 631 Bytes

Versions: 10

Compression:

Stored size: 631 Bytes

Contents

# typed: true
# frozen_string_literal: true

# We need sorbet to compile the signature for `qualified_name_of` before applying
# the patch to avoid an infinite loop.
T::Utils.signature_for_method(::Tapioca::Runtime::Reflection.method(:qualified_name_of))

module T
  module Types
    class Simple
      module NamePatch
        def name
          # Sorbet memoizes this method into the `@name` instance variable but
          # doing so means that types get memoized before this patch is applied
          ::Tapioca::Runtime::Reflection.qualified_name_of(@raw_type)
        end
      end

      prepend NamePatch
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
tapioca-0.9.3 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.9.0 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.8.3 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.8.2 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.7.3 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.8.1 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.8.0 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.7.2 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.7.1 lib/tapioca/sorbet_ext/name_patch.rb
tapioca-0.7.0 lib/tapioca/sorbet_ext/name_patch.rb