Android Studio 3.2.1
Kotlin plugin version 1.3.11-release-Studio3.2-1
ext.kotlin_version = '1.3.11' 
RxJava 1.3.0 
For example when I type in *.kt file: Observable.unsafeCreate{} and then press Ctrl+Space between {} , then IntellijIdea suggest me to type symbol t ->, but when I do the same in .java file result is subscriber -> :
*.kt file:
fun anyFunc(): Observable<Boolean>{
    return Observable.unsafeCreate { t -> t }
}

*.java file:
public void anyFunc() {
    Observable.unsafeCreate(subscriber -> {});
}
How to make in Kotlin file the same behavior of suggestion typing like in Java file?
[UPDATE]
Seems it is because of call() method in rx.functions.Func1, it has param t:
public interface Func1<T, R> extends Function { 
    R call(T t); 
}
                I'm using
Android Studio 3.2.1,
rxjava:2.2.0,
Kotlin plugin version 1.3.11-release-Studio3.2-1
After typing in *.kt file: Observable.unsafeCreate{} and pressing Ctrl+Space between {} Android Studio shows me next suggestion:

The same suggestion Android Studio shows when I'm typing in *.java file.
I didn't make any configuration changes in Android Studio Preferences.
I guess you are importing Observable from rx - the first item in the completion list on the image below. Try to import Observable from io.reactivex - highlighted item in the completion list below, it may help: import io.reactivex.Observable.

To use it you need to import rxjava2:
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
EDIT:
As was figured out code completion dialog showed t -> because parameter in Action1.call(T t) called t. We can see it if we look at the signature of rx.Observable.unsafeCreate method in RxJava 1.3:
public static <T> Observable<T> unsafeCreate(OnSubscribe<T> f) {
    return new Observable<T>(RxJavaHooks.onCreate(f));
}
OnSubscribe interface extends Action1<Subscriber<? super T>, and Action1 has next signature:
public interface Action1<T> extends Action {
    void call(T t);
}
So parameter is called t and Android Studio suggests it as t ->.
In RxJava2 we have different signature:
public static <T> Observable<T> unsafeCreate(ObservableSource<T> onSubscribe) {...}
public interface ObservableSource<T> {
    void subscribe(@NonNull Observer<? super T> observer);
}
We see that in ObservableSource.subscribe() method parameter is called observer, so we see it as observer->.
Conclusion: IDEA's suggestion is based on the parameter's name of the method of Functional interface you are implementing as lambda.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With