class Solargraph::TypeChecker::Rules


Definitions of type checking rules to be performed at various levels

def ignore_all_undefined?

def ignore_all_undefined?
  rank < LEVELS[:strict]
end

def initialize level

Parameters:
  • level (Symbol) --
def initialize level
  @rank = if LEVELS.key?(level)
    LEVELS[level]
  else
    Solargraph.logger.warn "Unrecognized TypeChecker level #{level}, assuming normal"
    0
  end
  @level = LEVELS[LEVELS.values.index(@rank)]
end

def must_tag_or_infer?

def must_tag_or_infer?
  rank > LEVELS[:typed]
end

def require_all_return_types_match_inferred?

def require_all_return_types_match_inferred?
  rank >= LEVELS[:alpha]
end

def require_type_tags?

def require_type_tags?
  rank >= LEVELS[:strong]
end

def validate_calls?

def validate_calls?
  rank >= LEVELS[:strict]
end

def validate_consts?

def validate_consts?
  rank >= LEVELS[:strict]
end

def validate_tags?

def validate_tags?
  rank > LEVELS[:normal]
end