Class: Prism::ParseWarning

Inherits:
Object
  • Object
show all
Defined in:
lib/prism/parse_result.rb,
ext/prism/extension.c

Overview

This represents a warning that was encountered during parsing.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, message, location, level) ⇒ ParseWarning

Create a new warning object with the given message and location.



658
659
660
661
662
663
# File 'lib/prism/parse_result.rb', line 658

def initialize(type, message, location, level)
  @type = type
  @message = message
  @location = location
  @level = level
end

Instance Attribute Details

#levelObject (readonly)

The level of this warning.



655
656
657
# File 'lib/prism/parse_result.rb', line 655

def level
  @level
end

#locationObject (readonly)

A Location object representing the location of this warning in the source.



652
653
654
# File 'lib/prism/parse_result.rb', line 652

def location
  @location
end

#messageObject (readonly)

The message associated with this warning.



649
650
651
# File 'lib/prism/parse_result.rb', line 649

def message
  @message
end

#typeObject (readonly)

The type of warning. This is an internal symbol that is used for communicating with translation layers. It is not meant to be public API.



646
647
648
# File 'lib/prism/parse_result.rb', line 646

def type
  @type
end

Instance Method Details

#deconstruct_keys(keys) ⇒ Object

Implement the hash pattern matching interface for ParseWarning.



666
667
668
# File 'lib/prism/parse_result.rb', line 666

def deconstruct_keys(keys)
  { type: type, message: message, location: location, level: level }
end

#inspectObject

Returns a string representation of this warning.



671
672
673
# File 'lib/prism/parse_result.rb', line 671

def inspect
  "#<Prism::ParseWarning @type=#{@type.inspect} @message=#{@message.inspect} @location=#{@location.inspect} @level=#{@level.inspect}>"
end