Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions core/module.rbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
class Module < Object
end
16 changes: 7 additions & 9 deletions core/object.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,8 @@ class Object < BasicObject

def block_given?: () -> bool

# TODO: Module
def kind_of?: (Class) -> bool
def self.kind_of?: (Class) -> bool
def kind_of?: (Class | Module) -> bool
def self.kind_of?: (Class | Module) -> bool

alias is_a? kind_of?
alias self.is_a? self.kind_of?
Expand Down Expand Up @@ -62,12 +61,11 @@ class Object < BasicObject
# TODO: Symbol
# def self.attr_accessor: (*Symbol names) -> void

# TODO: Module
# def include: (*Module mods) -> void
# def self.include: (*Module mods) -> void
#
# alias extend include
# alias self.extend include
def include: (Module, *Module mods) -> void
def self.include: (Module, *Module mods) -> void

alias extend include
alias self.extend self.include

# TODO: Array, Symbol
# def self.constants: (?bool inherit) -> Array[Symbol]
Expand Down
9 changes: 9 additions & 0 deletions test/module.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

# @type const Mod: Mod
module Mod
# @type method method: () -> void
def self.method
puts
end
end
26 changes: 25 additions & 1 deletion test/object.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
# rubocop:disable Style/ClassCheck
# rubocop:disable Style/FormatString
# rubocop:disable Style/RedundantFormat
# rubocop:disable Style/MixinGrouping
# rubocop:disable Layout/EmptyLinesAroundAccessModifier

# @type const TestMod: Module
module TestMod end

object = Object.new

Expand Down Expand Up @@ -43,10 +48,14 @@
object.block_given?

object.kind_of? Object
object.kind_of? TestMod
Object.kind_of? Object
Object.kind_of? TestMod

object.is_a? Object
object.is_a? TestMod
Object.is_a? Object
Object.is_a? TestMod

object.nil?
Object.nil?
Expand All @@ -71,15 +80,30 @@
object.raise
object.raise 'error'

# @type const A: A
# @type const A: Class
class A
# @type const TestMod: Module
module TestMod end

include TestMod
include TestMod, TestMod, TestMod

extend TestMod
extend TestMod, TestMod, TestMod

public

private

protected
end

Object.include TestMod
Object.include TestMod, TestMod, TestMod

Object.extend TestMod
Object.extend TestMod, TestMod, TestMod

sprintf "%d\n", 123

printf "%d\n", 123
Expand Down