メインコンテンツまでスキップ

T-Ruby v0.0.41 リリース

T-Ruby v0.0.41 では、キーワード引数構文が導入され、より表現力のある型アノテーションが可能になりました。(PR#27)

キーワード引数構文

📖 参照: オプション・Rest パラメータ

このリリースでは、位置引数と区別するキーワード引数のための新しい構文が追加されました:

分割代入を使用したキーワード引数

def create_user({ name: String, email: String }): User
User.new(name: name, email: email)
end

# キーワード引数で呼び出し
create_user(name: "Alice", email: "alice@example.com")

Hash リテラルパラメータ

def configure(config: { host: String, port: Integer }): void
# config は分割代入されたキーワードではなく、Hash パラメータです
end

ダブルスプラットによるフォワーディング

def forward_options(**opts: Symbol): void
other_method(**opts)
end

構文まとめ

構文意味
{ name: String }キーワード引数(分割代入)
config: { host: String }Hash リテラルパラメータ
**opts: Typeフォワーディング用ダブルスプラット

バグ修正

括弧なしメソッドの戻り値型削除を修正 (PR#24, Issue#23)

以前は、括弧なしで定義されたメソッドがコンパイル後も型アノテーションが残り、無効な Ruby コードが生成されていました:

# 修正前(T-Ruby ソース)
def greet: String
"Hello!"
end

# ❌ バグ:型アノテーションが削除されない
def greet: String
"Hello!"
end

# ✅ 修正済み:正しい Ruby コードにコンパイル
def greet
"Hello!"
end

この修正により、括弧の有無に関係なく、すべてのメソッドシグネチャが正しい Ruby コードに変換されます。

内部改善

  • 共通の文字列ユーティリティを StringUtils モジュールに抽出

アップグレード

gem update t-ruby