CARVIEW |
Select Language
HTTP/2 200
x-amz-id-2: 2kMGzDCfDxsgRbNns8zfoalOuZI7NEiL6q+ucbIye/uKOuPllDWaq7LwH3jZ6fG6WqXyytSLHpo=
x-amz-request-id: N8XMMQTM1VKG1R7N
last-modified: Fri, 02 Dec 2022 04:05:14 GMT
etag: "abd97f2a8694790c5479580aa22300e1"
server: AmazonS3
content-encoding: gzip
via: 1.1 varnish, 1.1 varnish
content-type: text/plain; charset=utf-8
accept-ranges: bytes
age: 0
date: Fri, 10 Oct 2025 23:39:44 GMT
x-served-by: cache-tyo11949-TYO, cache-bom-vanm7210049-BOM
x-cache: MISS, MISS
x-cache-hits: 0, 0
x-timer: S1760139584.375006,VS0,VE300
vary: Accept-Encoding
content-length: 869
From: info@...
Date: 2014-06-30T23:06:22+00:00
Subject: [ruby-core:63453] [ruby-trunk - Feature #9999] [Open] Type Annotations
Issue #9999 has been reported by Davide D'Agostino.
----------------------------------------
Feature #9999: Type Annotations
https://bugs.ruby-lang.org/issues/9999
* Author: Davide D'Agostino
* Status: Open
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category:
* Target version:
----------------------------------------
Hi all,
I know @matz is interested in introducing **type annotations** in ruby. More here: https://bugs.ruby-lang.org/issues/5583
I think it's time for ruby to get this.
Before working on a patch I would like to know:
1. Syntax of methods signatures
2. Syntax of variables guards (?)
3. Implementation
For point **1** I was thinking in some like:
~~~ruby
def connect(r -> Stream, c -> Client) -> Fiber
def connect(Stream r, Client c) -> Fiber # quite sure this will make some reduce problems in the grammar
~~~
Before making a proposal consider: keyword arguments and default value collisions.
Then for point **2** I'm not sure if we want also check assignments but as before a syntax could be:
~~~ruby
r: Client = something # will throw an exception if something is not kind of Client
~~~
Finally, **implementation**. Do we want some in python style and then leave the programmer/library for the implementation **or** (and I'm for this) we want MRI do that, if so how?
Cheers!
DD
p.s. Sorry if this issue was already discussed but I didn't find anything except the link posted.
--
https://bugs.ruby-lang.org/