Files
hakorune/docs/reference
tomoaki cc8b27a1aa feat(weak): Phase 285A1 - Weak Field Contract (Strict Type Enforcement)
Remove automatic WeakNew conversion and enforce strict compile-time type
checking for weak field assignments. Only 3 assignment types allowed:
1. Result of weak(x) call (WeakRef type)
2. Existing WeakRef variable (e.g., me.parent = other.parent)
3. Void/null (clear operation)

**Implementation**:
- Added MirType::WeakRef to type system (src/mir/types.rs)
- Track WeakRef type in emit_weak_new() even in pure mode
- Weak field reads return WeakRef without auto-upgrade
- Removed automatic WeakNew conversion from field writes
- Implemented check_weak_field_assignment() with actionable errors
- Fixed null literal type tracking (Phase 285A1.1: Unknown → Void)

**Testing**:
- 5 test fixtures (3 OK, 2 NG cases) - all passing
- Smoke test: phase285_weak_field_vm.sh
- Error messages guide users to use weak() or null

**Documentation**:
- Updated lifecycle.md SSOT with weak field contract

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-24 03:17:30 +09:00
..

Nyash Reference Documentation 📖

このディレクトリには、Nyashプログラミング言語の正式な技術仕様が含まれています。

📚 サブディレクトリ

language/

  • 言語仕様構文、型システム、Box仕様、デリゲーション
  • 正式な言語リファレンス

architecture/

  • システムアーキテクチャMIR、VM、インタープリター
  • 実行バックエンド仕様
  • 内部設計ドキュメント

api/

  • ビルトインBoxのAPI仕様
  • 標準ライブラリリファレンス
  • 各Boxのメソッド詳細

plugin-system/

  • プラグインシステム仕様
  • BID-FFIBox Interface Definition - Foreign Function Interface
  • プラグイン開発ガイド

📝 注意事項

このディレクトリのドキュメントは安定版です。開発中の仕様はdevelopment/を参照してください。