Skip to content

1.2.0

Compare
Choose a tag to compare
@Benjamin-Dobell Benjamin-Dobell released this 24 Dec 08:11
· 163 commits to master since this release
  • Requires IntelliJ IDEA 203 (2020.3)
  • Breaking: Removed unsafe assumed constructor functionality (#12)
  • Lua 5.4 support: <const> and <close> local variables and corresponding immutability inspections.
  • Removed 'Recognize global name as type' plugin option as its use encourages unsafe development practices.
  • Added new setting "Unknown type (any) is callable" which is enabled by default. For stricter type safety it's suggested you disable this option.
  • Added an "Illegal inheritance" inspection which will report inheritance cycles and inheritance from primitives.
  • Substantially improved (more refined) problem annotations on deeply nested table literals (#11 and more.)
  • Ensured inspections are re-run in more situations when variable types or type definitions are modified.
  • Improved lookup performance for locally scoped types, currently just generic types.
  • Performance improvements when dealing with types defined in the non-working file.
  • Jump to definition behavior for fields that are members of a table, table<K, V> or V[].
  • Added proper descriptions for every Luanalysis inspection.
  • Improved mouse-over pop-up docs for table literals that will be interpreted as a shape.
  • Only a subset of inspections are now run against files with the extension .def.lua e.g. return statement inspections are not run against functions
  • Improved inspections for missing arguments and colon/period function calls e.g. "Missing self argument. Did you mean to call the method with a colon?"
  • Corrected stdlib definitions for string.find()
  • Corrected stdlib definitions for next, ipairs and pairs.
  • Improved type safety of stdlib io module methods.
  • Improved stdlib math.random() definition. Contributed by Omniraptor
  • Improved stdlib string.gsub() definition. Contributed by Omniraptor
  • Fixed several related bugs that could cause Luanalysis to get into a state where it was unable to recognise both user and in-built types.
  • Fixed issue where shape inspections were appearing on table literals subject to a type cast (#14)
  • Static analysis now correctly handles use of parentheses to restrict multiple return values to just the first value.
  • Fixed handling of iterators.
  • Improved formatting/consistency of complex types displayed in the UI.
  • function type is now treated as returning any...
  • Fixed use of @overload in @class definitions that do not proceed a variable declaration/assignment.
  • Smarter union behavior that eliminates duplicate/covariant types from the union. This tends to result in much simple error message.
  • Fixed handling of some situations where table literals ought to be interpreted as arrays, but were not.