From 3bb1642c5e0b289922fa909ce8c7d6773fc653b0 Mon Sep 17 00:00:00 2001 From: Benjamin Dobell Date: Fri, 15 Jan 2021 02:47:13 +1100 Subject: [PATCH] 1.2.2 --- gradle.properties | 2 +- src/main/resources/META-INF/plugin.xml | 32 ++++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1bc49d7c..829d4cad 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,7 @@ # limitations under the License. # -version = 1.2.1 +version = 1.2.2 # https://github.com/EmmyLua/EmmyLuaDebugger/releases emmyDebuggerVersion = 1.0.14 # https://github.com/EmmyLua/EmmyLuaLegacyDebugger/releases diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 4fc0490a..987ee1aa 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -17,13 +17,41 @@ au.com.glassechidna.luanalysis Luanalysis - 1.2.1 + 1.2.2 Custom Languages

Source Code

]]>
1.2.2 +
    +
  • New "Illegal Overrides" inspection. Reports illegal member overrides when declaring a field/method on an inherited type.<br />If you're overriding a method with an incompatible type (e.g. subclass `init` function with different parameters) then you should annotate the parent `init` (and child) as `@private`.
  • +
  • Improved support for progressively adding type annotations to an existing Lua codebase. Essentially, local variables (without a declaration site assignment) and function parameters are now assumed to be of type `any`.
  • +
  • Mouse-over documentation now supports indexed fields e.g. docs are now displayed when hovering over the `[1]` in `arr[1]`.
  • +
  • Inspections now traverse expressions (function calls, binary operators etc.) so you'll see more specific errors within table literals in more circumstances.
  • +
  • Many stdlib improvements/fixes (setmetatable, load* functions, getfenv, tostring, pcall, xpcall, assert & collectgarbage).
  • +
  • Migrated stdlib to the .def.lua extension. If you're writing API types (i.e. files that are never executed) it's suggested you adopt this file extension too.
  • +
  • Formalised type widening behaviour for overridden fields.
  • +
  • Best effort type inference for the return type of invalid function calls i.e. more chance of just seeing errors at the call site, rather than all through-out a function.
  • +
  • Special case handling for resolution of the `self` type when writing classes as closures i.e. expressions that look like `setmetatable(someTable, {__call=function() end})`. In such cases `self` type will be resolved based on the return type of `__call`.
  • +
  • Various type inference and variance detection performance improvements.
  • +
  • Improved handling of return types that are a union of multiple results. Rather than being flattened into a multiple result list where each component is a union during type checking, the initial structure is preserved.
  • +
  • Ensured method override auto-completion works in more circumstances.
  • +
  • Ensured primitives are never covariant of shapes.
  • +
  • Made an attempt to ensure the plugin is considered "dynamic" by IDEA.
  • +
  • Fixed clashes between anonymous types declared at the same offer in files with the same name (in different directories or virtual file systems).
  • +
  • Fixed several complex type rendering issues (missing brackets etc.) in the UI.
  • +
  • Fixed a boolean operator type inference bug in the presence of variadic return types.
  • +
  • Fixed some incorrect inspections when "Unknown type (any) is indexable" is enabled".
  • +
  • Fixed type inference/inspections involving assignment of `nil` to a member of `table<K, nil | V>`
  • +
  • Fixed "Compute constant value" intention. However, many of the cases supported seem excessive and quite impractical. As such, this intention may be simplified in a future release.
  • +
  • Fixed type inference & inspections for shapes that recursively reference themselves in their fields.
  • +
  • Fixed auto-complete and type resolution for fields that are written to `self` typed variables.
  • +
  • Fixed several bugs where generic parameters declared in multiple scopes are involved in type inference.
  • +
  • Fixed support for generic parameters referring to other generic parameters in their type constraints.
  • +
  • Fixed occasional misreported generic parameter shadowed errors.
  • +
1.2.1
  • Improved return inspection handling for unions of multiple results
  • @@ -41,7 +69,7 @@
  • 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[].
  • +
  • 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