-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
I'm going to use this issue to track all the bugs I find while working on the LSP
Error Reporting
-
missing call argumentreported incorrectly
This should be reported astoo many call argumentsor better1 parameter expecetd but 2 were given
block.setFriction(1, "");This happens here
- call argument error position is incorrect
The position should be reported in between the()

- Unknown variable has a weird reporting message, this can probably be more vague, like
cannot find X - (opinion)
ambigious callis too verbose
var b = a.map<string>(x => "a" + x);is reporting as
Ambiguous call; multiple headers match:
<U@Arrays.zs:50:12>(projection: function(value: string): string): string[]
<U@arrays_map_2.zc:7:12>(projection: function(value: string): string): string[]
Could be reported as:
Ambiguous call; multiple headers match:
<U@Arrays.zs:50:12>(function(string): string): string[]
<U@arrays_map_2.zc:7:12>(function(string): string): string[]
There could be more cleanup, but I think removing the parameter names are a good start
Java reports this error as:
Ambiguous method call: both 'CompilerErrors.doThing(Function<String, String>)' and 'CompilerErrors.doThing(int[])' match.
-
No operator in type position is incorrect when in call arguments
The position should be reported on the operator, instead of on the function call

General
- If a class has a constructor, the ContructorMember's body never gets set and is always null
ZenCode/CodeModel/src/main/java/org/openzen/zenscript/codemodel/definition/ClassDefinition.java
Line 46 in f325e2f
boolean hasNoConstructor = members.stream().noneMatch(IDefinitionMember::isConstructor);
Metadata
Metadata
Assignees
Labels
No labels
