Class: Optimize::TypeEnv
- Inherits:
-
Object
- Object
- Optimize::TypeEnv
- Defined in:
- lib/optimize/type_env.rb
Class Method Summary collapse
Instance Method Summary collapse
- #empty? ⇒ Boolean
-
#initialize(signatures) ⇒ TypeEnv
constructor
A new instance of TypeEnv.
- #new_returns?(class_name) ⇒ Boolean
- #signature_for(receiver_class:, method_name:) ⇒ Object
- #signature_for_function(function, class_context:) ⇒ Object
Constructor Details
#initialize(signatures) ⇒ TypeEnv
Returns a new instance of TypeEnv.
10 11 12 13 14 15 |
# File 'lib/optimize/type_env.rb', line 10 def initialize(signatures) @by_key = {} signatures.each do |s| @by_key[[s.receiver_class, s.method_name]] = s end end |
Class Method Details
Instance Method Details
#empty? ⇒ Boolean
21 22 23 |
# File 'lib/optimize/type_env.rb', line 21 def empty? @by_key.empty? end |
#new_returns?(class_name) ⇒ Boolean
30 31 32 |
# File 'lib/optimize/type_env.rb', line 30 def new_returns?(class_name) class_name end |
#signature_for(receiver_class:, method_name:) ⇒ Object
17 18 19 |
# File 'lib/optimize/type_env.rb', line 17 def signature_for(receiver_class:, method_name:) @by_key[[receiver_class, method_name]] end |
#signature_for_function(function, class_context:) ⇒ Object
25 26 27 28 |
# File 'lib/optimize/type_env.rb', line 25 def signature_for_function(function, class_context:) return nil unless function.type == :method && function.name @by_key[[class_context, function.name.to_sym]] end |