Sha256: d11cc26aa5657af6cc63e0a9d6f02f553053c970fe743741f049cc770c70fa83

Contents?: true

Size: 753 Bytes

Versions: 73

Compression:

Stored size: 753 Bytes

Contents

module Steep
  module Subtyping
    class Cache
      attr_reader :subtypes

      def initialize
        @subtypes = {}
      end

      def subtype(relation, self_type, instance_type, class_type, bounds)
        key = [relation, self_type, instance_type, class_type, bounds]
        subtypes[key]
      end

      def [](relation, self_type, instance_type, class_type, bounds)
        key = [relation, self_type, instance_type, class_type, bounds]
        subtypes[key]
      end

      def []=(relation, self_type, instance_type, class_type, bounds, value)
        key = [relation, self_type, instance_type, class_type, bounds]
        subtypes[key] = value
      end

      def no_subtype_cache?
        @subtypes.empty?
      end
    end
  end
end

Version data entries

73 entries across 73 versions & 3 rubygems

Version Path
steep-1.10.0 lib/steep/subtyping/cache.rb
steep-1.10.0.pre.3 lib/steep/subtyping/cache.rb
steep-1.10.0.pre.2 lib/steep/subtyping/cache.rb
steep-1.10.0.pre.1 lib/steep/subtyping/cache.rb
steep-1.10.0.dev.1 lib/steep/subtyping/cache.rb
steep-relaxed-1.9.4.3 lib/steep/subtyping/cache.rb
steep-relaxed-1.9.3.3 lib/steep/subtyping/cache.rb
steep-activesupport-4-1.9.4 lib/steep/subtyping/cache.rb
steep-activesupport-4-1.9.3.1 lib/steep/subtyping/cache.rb
steep-1.9.4 lib/steep/subtyping/cache.rb
steep-activesupport-4-1.9.3 lib/steep/subtyping/cache.rb
steep-1.9.3 lib/steep/subtyping/cache.rb
steep-1.9.2 lib/steep/subtyping/cache.rb
steep-1.9.1 lib/steep/subtyping/cache.rb
steep-1.9.0 lib/steep/subtyping/cache.rb
steep-1.9.0.dev.2 lib/steep/subtyping/cache.rb
steep-1.9.0.dev.1 lib/steep/subtyping/cache.rb
steep-1.8.3 lib/steep/subtyping/cache.rb
steep-1.8.2 lib/steep/subtyping/cache.rb
steep-1.8.1 lib/steep/subtyping/cache.rb