---
title: "On Yıllık Bekleyişin Sonu: Rust 1.100.0 ile Never Tipi Artık Kararlı"
url: https://blog.edumints.com/on-yillik-bekleyisin-sonu-rust-1-100-0-ile-never-tipi-artik-kararli
category: "Yazılım"
date: 2026-11-13T06:06:32.968Z
publisher: Edumints Blog
lang: tr-TR
source_name: "Hacker News"
source_url: https://blog.rust-lang.org/2026/11/12/Rust-1.100.0/
---

# On Yıllık Bekleyişin Sonu: Rust 1.100.0 ile Never Tipi Artık Kararlı

Rust derleyicisinde 10 yıldır süren ve 5 başarısız denemeyle sonuçlanan "never" (`!`) tipi çalışması, 12 Kasım 2026'da yayımlanan Rust 1.100.0 sürümüyle kararlı hale geldi. Kod içinde `!` olarak yazılan bu yapı, hiçbir zaman bir değere dönüşmeyen (diverging) hesaplamaları ve sonrasındaki kodun erişilemez olduğu durumları temsil ediyor.

## Hata İhtimali Olmayan Kodları İfade Etmek

Daha önce `return`, `break` ve `std::process::exit` gibi kontrol akışını sonlandıran ifadelerin tipi zaten `!` olarak çalışıyordu. Hatta fonksiyonların dönüş tipinde (`-> !`) bu işareti kullanabiliyordun. Bir `match` veya `if` kolundan değer döndürmeden çıkmak istediğinde derleyici `!` tipini beklenen tipe otomatik olarak dönüştürüyordu (never-to-any coercion):

```rust
fn mrrrow(option: Option<u32>) {
    let value = match option {
        Some(x) => x,
        None => return,
    };
}
```

Buradaki `return` ifadesi `!` tipindedir ve derleyici onu `u32` tipine dönüştürerek `match` bloğunun tip kontrolünden geçmesini sağlar. Ancak `!` tipini generic parametrelerde ya da keyfi tür konumlarında doğrudan yazamıyordun.

Rust 1.100.0 bu kısıtlamayı kaldırıyor. Artık `!` tipini kodun her yerinde açıkça isimlendirebilirsin. Örneğin, hata döndürmesi imkansız bir `Result` türünü doğrudan `Result<T, !>` şeklinde tanımlamak mümkün:

```rust
fn infallible_unwrap<T>(res: Result<T, !>) -> T {
    let Ok(v) = res;
    v
}
```

Bu adımla birlikte standart kütüphanedeki `Infallible` türü de doğrudan `!` tipinin bir takma adı (alias) haline getirildi. Böylece geçmişte `Infallible` kullanan tüm eski API'ler, ekstra bir dönüşüme gerek kalmadan `!` ile tam uyumlu çalışıyor. Zaten `Infallible` ilk eklendiğinden beri hedeflenen plan buydu; süreci zorlaştıran temel nedenlerden biri de bu geçişti.

## Eski Sürümlerdeki Fallback Değişikliği ve Olası Etkileri

`Infallible` türünü `!` için bir takma ad yapabilmek, geriye dönük uyumluluğu kıran (breaking change) bir değişikliği zorunlu kıldı. Daha önce 2024 edition içinde yapılan düzenlemeye benzer biçimde, 2024 öncesi sürümlerde (2015, 2018 ve 2021 editions) "never type fallback" davranışı `()` yerine `!` olarak değiştirildi.

Çoğu projede bu geçiş fark edilmeyecektir. Yine de generic parametre döndüren bir fonksiyonun sonucunu yok saydığın nadir durumlarda mevcut kodun etkilenebilir. Ayrıca derleyici artık daha fazla kodu "erişilemez" (unreachable) olarak tespit edebilir. Rust ekibi bu kırılmanın etkisini en aza indirmek için çok önceden uyumluluk uyarıları ekledi ve etkilenen açık kaynaklı paketlere (crate) düzeltmeler gönderdi. Projende `!` tipiyle ilgili bir bağımlılık hatası alırsan, ilgili paketin yeni sürümü yayımlanmış olabileceği için bağımlılıklarını güncellemeyi deneyebilirsin.

## Rust 1.100.0 Sürümündeki Diğer Başlıklar ve Güncelleme

Yeni sürüm sadece `!` tipiyle sınırlı değil. Dil ve araç tarafında öne çıkan diğer başlıklar şunlar:

* **Kütüphane ve Bellek Yönetimi:** Allocator API, DropGuard API ve sıfır boyutlu tipler oluşturma (conjuring zero-sized types) özellikleri kararlı sürüme geçti.
* **Cargo İyileştirmeleri:** Kullanılmayan bağımlılıkların raporlanması, Cargo önbellek (cache) çakışmalarının azaltılması ve `min-publish-age` desteği eklendi.

Sisteminde `rustup` üzerinden kurulu bir Rust sürümü varsa, aşağıdaki komutla doğrudan 1.100.0 kararlı sürümüne geçebilirsin:

```bash
$ rustup update stable
```

Gelecek sürümleri test ederek geliştirme sürecine katkı sağlamak istersen, yerel ortamını beta kanalına (`rustup default beta`) veya nightly kanalına (`rustup default nightly`) geçirip karşılaştığın hataları bildirebilirsin.

---

**Kaynak:** Hacker News (https://blog.rust-lang.org/2026/11/12/Rust-1.100.0/)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/on-yillik-bekleyisin-sonu-rust-1-100-0-ile-never-tipi-artik-kararli
