elm-language-server icon indicating copy to clipboard operation
elm-language-server copied to clipboard

Tracking where diagnostics differ from the compiler

Open jmbockhorst opened this issue 4 years ago • 1 comments

Ongoing tracking issue for known areas where the diagnostics differ from the compiler.

Places we don't show an error when there should be:

  • [x] Missing case branches
  • [x] Unknown/missing exposed value in module exposing list
  • [x] Same value name imported from multiple modules. Ambiguous name
  • [ ] Multiple packages in dependencies expose a module with the same name
  • [ ] Unused type variable
  • [x] Mutual let recursion
  • [ ] Type mismatch for recursive functions
  • [ ] Infinite types
  • [ ] Duplicates types, declarations, fields, etc
  • [ ] No ports
  • [x] Unknown value in import exposing list
  • [ ] Unbound type variable
  • [ ] Mismatched function and annotation names
  • [ ] Redundant exports
  • [ ] Shadowing

jmbockhorst avatar Dec 15 '20 14:12 jmbockhorst

Not sure if I should raise a separate issue for this, but using reserved words as field-/argument-names also isn't detected by the language server. E.g. elm compiler gives:

I am partway through parsing a record type, but I got stuck on this field name:

80|     { name : Maybe String
81|     , type : LocationType
          ^^^^
It looks like you are trying to use `type` as a field name, but that is a
reserved word. Try using a different name!

but elm-language-server doesn't show any errors.

peret avatar Feb 20 '24 11:02 peret