File: SuspendFunctionOnCoroutineScope.html

package info (click to toggle)
kotlin 1.3.31%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 109,524 kB
  • sloc: java: 454,753; xml: 18,599; javascript: 10,452; sh: 513; python: 97; makefile: 54; ansic: 4
file content (17 lines) | stat: -rw-r--r-- 914 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<body>
This inspection reports calls & accesses of <b>CoroutineScope</b> extensions or members
inside suspend functions with <b>CoroutineScope</b> receiver.

Both suspend functions and <b>CoroutineScope</b> members & extensions have access to <b>coroutineContext</b>.
When some function is simultaneously suspend <b>and</b> has <b>CoroutineScope</b> receiver,
it has ambiguous access to <b>CoroutineContext</b>:
first via <b>kotlin.coroutines.coroutineContext</b> and second via <b>CoroutineScope.coroutineContext</b>,
and two these contexts are different in general case.
So when we call some <b>CoroutineScope</b> extension or access <b>coroutineContext</b> from such a function,
it's unclear which from these two context do we have in mind.

Normal ways to fix this are to wrap suspicious call inside <b>coroutineScope { ... }</b> or
to get rid of <b>CoroutineScope</b> function receiver.
</body>
</html>