# \[Pitch\] Make noasync annotation transitive

**URL:** <https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749>\
**Category:** Pitches\
**Created:** [May 10, 2024, 10:03am UTC](https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749 "2024-05-10T10:03:51Z")\
**Posts on this page:** 5\
**Page:** 2

<div class="post-metadata">

**Author:** ![0xTim](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/0xtim/32/27968_2.png) [@0xTim](https://forums.swift.org/u/0xTim)\
**Post date:** [June 2, 2026, 1:17pm UTC](https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749/21 "2026-06-02T13:17:47Z")

</div>

I believe most of the issues we encountered were fixed in later Swift versions. We also fixed crashes caused by the misuse so it's been a while since I looked at them

---

<div class="post-metadata">

**Author:** ![tera](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/tera/32/38201_2.png) [@tera](https://forums.swift.org/u/tera)\
**Post date:** [June 2, 2026, 7:17pm UTC](https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749/22 "2026-06-02T19:17:35Z")

</div>

> [@0xTim](#):
>
> I believe most of the issues we encountered were fixed in later Swift versions. We also fixed crashes caused by the misuse so it's been a while since I looked at them

But what exactly was fixed?

> [@0xTim](#):
>
> ```swift
> regularFunction() // This is bad but produces no warning
> 
> ```

That there's now a warning? Or that this is no longer bad?

---

<div class="post-metadata">

**Author:** ![0xTim](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/0xtim/32/27968_2.png) [@0xTim](https://forums.swift.org/u/0xTim)\
**Post date:** [June 3, 2026, 10:04am UTC](https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749/23 "2026-06-03T10:04:37Z")

</div>

IIRC it produces a warning

---

<div class="post-metadata">

**Author:** ![tera](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/tera/32/38201_2.png) [@tera](https://forums.swift.org/u/tera)\
**Post date:** [June 3, 2026, 11:50am UTC](https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749/24 "2026-06-03T11:50:36Z")

</div>

I do not see a warning... testes this snippet on recent Swift versions on godbolt:

```swift
@available(*, noasync, message: "This can block the calling thread and should not be called in an async context", renamed: "asyncAlternative()")
func noAsyncFunc() {}

func regularFunction() {
  noAsyncFunc()
}

func doSomethingAsync() async {
  regularFunction()
}

```

---

<div class="post-metadata">

**Author:** ![grynspan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/grynspan/32/15315_2.png) [@grynspan](https://forums.swift.org/u/grynspan)\
**Post date:** [June 11, 2026, 4:29pm UTC](https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749/25 "2026-06-11T16:29:48Z")

</div>

This is not expected to produce a diagnostic, no.

[Previous page](https://forums.swift.org/t/pitch-make-noasync-annotation-transitive/71749.md?page=1)
