LuaLS / lua-language-server

A language server that offers Lua language support - programmed in Lua
https://luals.github.io
MIT License
3.25k stars 305 forks source link

duplicate field error when setting a field to a function in an if/else #1794

Open BurninSun opened 1 year ago

BurninSun commented 1 year ago

How are you using the lua-language-server?

Visual Studio Code Extension (sumneko.lua)

Which OS are you using?

Windows

What is the issue affecting?

Diagnostics/Syntax Checking

Expected Behaviour

No duplicate field error

Actual Behaviour

image

  if x then
    t.s = function() return 1 end
  else
    t.s = function() return 2 end
  end

This is not a duplicate field and should not be an error

Reproduction steps

  if x then
    t.s = function() return 1 end
  else
    t.s = function() return 2 end
  end

Write that into the editor. See error as indicated above.

Additional Notes

v3.6.4

Log File

file_c%3A_Users_User_AppData_Roaming_Factorio_mods_space-exploration.log

BribeFromTheHive commented 1 year ago

Can confirm. Had to build out your example a bit, but the error message does indeed occur:

  local t = {}
  local x = true
  if x then
    t.s = function() return 1 end
  else
    t.s = function() return 2 end
  end
jdahlblom commented 1 year ago

Also using VS Code (1.82.1) & the sumneko (v3.7.0) extension on Windows 11. I have a @meta file with definitions for external APIs. Is this the same problem? I currently have the the inspection disabled by adding this before each @field that is flagged as duplicate: --- @diagnostic disable-next-line: duplicate-doc-field

2023-09-13_092731 2023-09-13_092717