mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-18 04:21:24 +07:00
[java] skip plain cannot infer diamond error (IDEA-283409); add ambiguous constructor call (IDEA-272115)
this unifies error messages with method calls and allows more specific tooltips and additional fixes GitOrigin-RevId: 5ab4340d822bba3d6563da12a16e4c41216a8627
This commit is contained in:
committed by
intellij-monorepo-bot
parent
10f7715893
commit
e6165048e8
@@ -1,6 +1,6 @@
|
||||
class Test {
|
||||
{
|
||||
D<String> ds = new D<error descr="Cannot infer arguments (unable to resolve constructor)"><></error>(9);
|
||||
D<String> ds = new D<><error descr="Cannot resolve constructor 'D(int)'">(9)</error>;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
class Test {
|
||||
{
|
||||
Holder h = null;
|
||||
Result<String> r1 = new Result<error descr="Cannot infer arguments"><></error>(h);
|
||||
Result<String> r1 = <error descr="Incompatible types. Found: 'Result<Holder>', required: 'Result<java.lang.String>'">new Result<>(h);</error>
|
||||
Result<String> r2 = <error descr="Incompatible types. Found: 'Result<Holder>', required: 'Result<java.lang.String>'">Result.create(h);</error>
|
||||
|
||||
Holder dataHolder = null;
|
||||
Result<String> r3 = new Result<error descr="Cannot infer arguments"><></error>(new Holder<>(dataHolder));
|
||||
Result<String> r3 = <error descr="Incompatible types. Found: 'Result<Holder>', required: 'Result<java.lang.String>'">new Result<>(new Holder<>(dataHolder));</error>
|
||||
Result<String> r4 = <error descr="Incompatible types. Found: 'Result<Holder>', required: 'Result<java.lang.String>'">Result.create(new Holder<>(dataHolder));</error>
|
||||
|
||||
Result<String> r5 = new Result<error descr="Cannot infer arguments"><></error>(Holder.create(dataHolder));
|
||||
Result<String> r5 = <error descr="Incompatible types. Found: 'Result<Holder>', required: 'Result<java.lang.String>'">new Result<>(Holder.create(dataHolder));</error>
|
||||
Result<String> r6 = <error descr="Incompatible types. Found: 'Result<Holder>', required: 'Result<java.lang.String>'">Result.create(Holder.create(dataHolder));</error>
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
class A<R>{
|
||||
A(R value) {}
|
||||
public static void main(String[] args) {
|
||||
A<Integer> a = new A<><error descr="'A(R)' in 'A' cannot be applied to '(java.lang.String, int)'" tooltip="Expected 1 arguments but found 2">("hi", 1)</error>;
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ public class ConcurrentCollectors {
|
||||
static <T, K, D, M1 extends Map<K, D>> C<T, M1> groupingBy(F<M1> f,
|
||||
C<T, D> c,
|
||||
BiConsumer<M1, T> consumer) {
|
||||
return new CImpl<error descr="Cannot infer arguments"><></error>(f, consumer, arg(c.getOp()));
|
||||
return new CImpl<><error descr="'CImpl(ConcurrentCollectors.F<R>, ConcurrentCollectors.BiConsumer<R,T>, ConcurrentCollectors.BiOp<R>)' in 'ConcurrentCollectors.CImpl' cannot be applied to '(ConcurrentCollectors.F<M1>, ConcurrentCollectors.BiConsumer<M1,T>, ConcurrentCollectors.BiOp<ConcurrentCollectors.ConcurrentMap<java.lang.Object,D>>)'">(f, consumer, arg(c.getOp()))</error>;
|
||||
}
|
||||
|
||||
static <K, V, M2 extends ConcurrentMap<K, V>> BiOp<M2> arg(BiOp<V> op) {
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
class OverloadCast {
|
||||
|
||||
public void runMe() {
|
||||
new <error descr="Cannot resolve constructor 'OverloadCast(<method reference>, <lambda expression>)'">OverloadCast</error>(WhitespaceTokenizer::<error descr="Cannot resolve constructor 'WhitespaceTokenizer'">new</error>, src -> new LowerCaseFilter<error descr="'LowerCaseFilter(OverloadCast.TokenStream)' in 'OverloadCast.LowerCaseFilter' cannot be applied to '(<lambda parameter>)'">(src)</error>);
|
||||
<error descr="Ambiguous method call: both 'OverloadCast.overloadCast(Supplier<Tokenizer>, Function<TokenStream, TokenFilter>)' and 'OverloadCast.overloadCast(Function<TokenStream, TokenFilter>, Function<String, String>)' match">overloadCast</error>(WhitespaceTokenizer::<error descr="Cannot resolve constructor 'WhitespaceTokenizer'">new</error>, src -> new LowerCaseFilter<error descr="'LowerCaseFilter(OverloadCast.TokenStream)' in 'OverloadCast.LowerCaseFilter' cannot be applied to '(<lambda parameter>)'">(src)</error>);
|
||||
}
|
||||
|
||||
private OverloadCast(Supplier<Tokenizer> tokenizerFactory, Function<TokenStream, TokenFilter> filterCreator) {
|
||||
}
|
||||
|
||||
private OverloadCast(Function<TokenStream, TokenFilter> filterCreator, Function<String, String> readerWrapper) {
|
||||
}
|
||||
|
||||
private void overloadCast(Supplier<Tokenizer> tokenizerFactory, Function<TokenStream, TokenFilter> filterCreator) {
|
||||
}
|
||||
|
||||
private void overloadCast(Function<TokenStream, TokenFilter> filterCreator, Function<String, String> readerWrapper) {
|
||||
}
|
||||
|
||||
private class Tokenizer {
|
||||
}
|
||||
|
||||
private class TokenStream {
|
||||
}
|
||||
|
||||
private class TokenFilter {
|
||||
}
|
||||
|
||||
private class WhitespaceTokenizer extends Tokenizer {
|
||||
private WhitespaceTokenizer(TokenStream s) {
|
||||
}
|
||||
|
||||
private WhitespaceTokenizer() {
|
||||
}
|
||||
}
|
||||
|
||||
private class LowerCaseFilter extends TokenFilter {
|
||||
public LowerCaseFilter(TokenStream src) {
|
||||
super();
|
||||
}
|
||||
|
||||
private LowerCaseFilter() {
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user