diff --git a/stdlib/socket/0/tcp_server.rbs b/stdlib/socket/0/tcp_server.rbs index 05f3d3f47..8dd6246d3 100644 --- a/stdlib/socket/0/tcp_server.rbs +++ b/stdlib/socket/0/tcp_server.rbs @@ -188,5 +188,5 @@ class TCPServer < TCPSocket # getaddrinfo() returns multiple addresses, TCPServer.new tries to create a # server socket for each address and returns first one that is successful. # - def initialize: (?String host, Integer port) -> untyped + def initialize: (?String? host, Integer | String port) -> void end diff --git a/test/stdlib/socket/TCPServer_test.rb b/test/stdlib/socket/TCPServer_test.rb new file mode 100644 index 000000000..b871b0d20 --- /dev/null +++ b/test/stdlib/socket/TCPServer_test.rb @@ -0,0 +1,37 @@ +require_relative "../test_helper" + +require "socket" + +class TCPServerSingletonTest < Test::Unit::TestCase + include TestHelper + + library "socket" + testing "singleton(::TCPServer)" + + def test_new + assert_send_type( + "(::Integer) -> ::TCPServer", + TCPServer, :new, 0 + ).close + + assert_send_type( + "(::String) -> ::TCPServer", + TCPServer, :new, "0" + ).close + + assert_send_type( + "(::String, ::Integer) -> ::TCPServer", + TCPServer, :new, "127.0.0.1", 0 + ).close + + assert_send_type( + "(::String, ::String) -> ::TCPServer", + TCPServer, :new, "127.0.0.1", "0" + ).close + + assert_send_type( + "(nil, ::Integer) -> ::TCPServer", + TCPServer, :new, nil, 0 + ).close + end +end