Class: Steep::Diagnostic::Ruby::SetterBodyTypeMismatch

Inherits:
Base
  • Object
show all
Includes:
ResultPrinter
Defined in:
lib/steep/diagnostic/ruby.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#location, #node

Instance Method Summary collapse

Methods included from ResultPrinter

#detail_lines, #relation_message

Methods inherited from Base

#detail_lines, #diagnostic_code

Methods included from Helper

#error_name, #full_message

Constructor Details

#initialize(node:, expected:, actual:, result:, method_name:) ⇒ SetterBodyTypeMismatch

Returns a new instance of SetterBodyTypeMismatch.



531
532
533
534
535
536
537
# File 'lib/steep/diagnostic/ruby.rb', line 531

def initialize(node:, expected:, actual:, result:, method_name:)
  super(node: node, location: node.loc.name)
  @expected = expected
  @actual = actual
  @result = result
  @method_name = method_name
end

Instance Attribute Details

#actualObject (readonly)

Returns the value of attribute actual.



527
528
529
# File 'lib/steep/diagnostic/ruby.rb', line 527

def actual
  @actual
end

#expectedObject (readonly)

Returns the value of attribute expected.



527
528
529
# File 'lib/steep/diagnostic/ruby.rb', line 527

def expected
  @expected
end

#method_nameObject (readonly)

Returns the value of attribute method_name.



527
528
529
# File 'lib/steep/diagnostic/ruby.rb', line 527

def method_name
  @method_name
end

#resultObject (readonly)

Returns the value of attribute result.



527
528
529
# File 'lib/steep/diagnostic/ruby.rb', line 527

def result
  @result
end

Instance Method Details

#header_lineObject



539
540
541
# File 'lib/steep/diagnostic/ruby.rb', line 539

def header_line
  "Setter method `#{method_name}` cannot have type `#{actual}` because declared as type `#{expected}`"
end