Class: Steep::Diagnostic::Ruby::IncompatibleAnnotation

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:, var_name:, result:, relation:) ⇒ IncompatibleAnnotation

Returns a new instance of IncompatibleAnnotation.



697
698
699
700
701
702
# File 'lib/steep/diagnostic/ruby.rb', line 697

def initialize(node:, var_name:, result:, relation:)
  super(node: node, location: node.location.expression)
  @var_name = var_name
  @result = result
  @relation = relation
end

Instance Attribute Details

#relationObject (readonly)

Returns the value of attribute relation.



695
696
697
# File 'lib/steep/diagnostic/ruby.rb', line 695

def relation
  @relation
end

#resultObject (readonly)

Returns the value of attribute result.



694
695
696
# File 'lib/steep/diagnostic/ruby.rb', line 694

def result
  @result
end

#var_nameObject (readonly)

Returns the value of attribute var_name.



693
694
695
# File 'lib/steep/diagnostic/ruby.rb', line 693

def var_name
  @var_name
end

Instance Method Details

#header_lineObject



706
707
708
# File 'lib/steep/diagnostic/ruby.rb', line 706

def header_line
  "Type annotation about `#{var_name}` is incompatible since #{relation} doesn't hold"
end