Module: Yoda::Model::TypeExpressions

Defined in:
lib/yoda/model/type_expressions.rb,
lib/yoda/model/type_expressions/base.rb,
lib/yoda/model/type_expressions/any_type.rb,
lib/yoda/model/type_expressions/duck_type.rb,
lib/yoda/model/type_expressions/generator.rb,
lib/yoda/model/type_expressions/self_type.rb,
lib/yoda/model/type_expressions/void_type.rb,
lib/yoda/model/type_expressions/union_type.rb,
lib/yoda/model/type_expressions/value_type.rb,
lib/yoda/model/type_expressions/module_type.rb,
lib/yoda/model/type_expressions/generic_type.rb,
lib/yoda/model/type_expressions/unknown_type.rb,
lib/yoda/model/type_expressions/function_type.rb,
lib/yoda/model/type_expressions/instance_type.rb,
lib/yoda/model/type_expressions/sequence_type.rb,
lib/yoda/model/type_expressions/function_type/parameter.rb

Overview

Each type expression represents type annotations. Unlike type for symbolic execution, each type expression has LexicalScope and the corresponding constants are not determined yet.

Defined Under Namespace

Classes: AnyType, Base, DuckType, FunctionType, Generator, GenericType, InstanceType, ModuleType, SelfType, SequenceType, UnionType, UnknownType, ValueType, VoidType

Class Method Summary collapse

Class Method Details

.parse(string) ⇒ TypeExpressions::Base

Parameters:

  • string (String)

Returns:



27
28
29
30
31
# File 'lib/yoda/model/type_expressions.rb', line 27

def self.parse(string)
  Generator.new.apply(YardTypeParser.new.parse(string))
rescue Parslet::ParseFailed => failure
  TypeExpressions::UnknownType.new(string)
end

.parse_type_strings(strings) ⇒ TypeExpressions::Base

Parameters:

  • strings (Array<String>)

Returns:



35
36
37
# File 'lib/yoda/model/type_expressions.rb', line 35

def self.parse_type_strings(strings)
  TypeExpressions::UnionType.new(strings.map { |string| parse(string) })
end