mt-lang 0.3.38 → 0.3.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/docs/lsp-performance.md +347 -0
- data/lib/milk_tea/base.rb +1 -1
- data/lib/milk_tea/core/ast.rb +2 -2
- data/lib/milk_tea/core/bindings/attribute_binding.rb +1 -6
- data/lib/milk_tea/core/bindings/module_binding.rb +1 -1
- data/lib/milk_tea/core/intrinsics.rb +23 -1
- data/lib/milk_tea/core/lowering/functions.rb +3 -0
- data/lib/milk_tea/core/lowering/resolve.rb +4 -65
- data/lib/milk_tea/core/lowering/utils.rb +0 -17
- data/lib/milk_tea/core/lowering.rb +1 -2
- data/lib/milk_tea/core/module_binder.rb +4 -15
- data/lib/milk_tea/core/module_loader.rb +0 -2
- data/lib/milk_tea/core/parser/declarations.rb +24 -17
- data/lib/milk_tea/core/semantic_analyzer/analysis_context.rb +2 -111
- data/lib/milk_tea/core/semantic_analyzer/expressions.rb +1 -2
- data/lib/milk_tea/core/semantic_analyzer/function_binding.rb +26 -17
- data/lib/milk_tea/core/semantic_analyzer/name_resolution.rb +26 -42
- data/lib/milk_tea/core/semantic_analyzer/type_compatibility.rb +0 -59
- data/lib/milk_tea/core/semantic_analyzer/type_declaration.rb +0 -2
- data/lib/milk_tea/core/types/predicates.rb +57 -0
- data/lib/milk_tea/core/types.rb +0 -4
- data/lib/milk_tea/lsp/diagnostics.rb +15 -5
- data/lib/milk_tea/lsp/server/code_actions.rb +0 -4
- data/lib/milk_tea/lsp/server/completion.rb +100 -77
- data/lib/milk_tea/lsp/server/diagnostics_scheduling.rb +4 -6
- data/lib/milk_tea/lsp/server/formatting.rb +13 -3
- data/lib/milk_tea/lsp/server/hover.rb +321 -41
- data/lib/milk_tea/lsp/server/lifecycle.rb +12 -0
- data/lib/milk_tea/lsp/server/references.rb +3 -1
- data/lib/milk_tea/lsp/server/semantic_tokens.rb +55 -16
- data/lib/milk_tea/lsp/server/text_documents.rb +2 -2
- data/lib/milk_tea/lsp/server/type_hierarchy.rb +2 -2
- data/lib/milk_tea/lsp/server/utilities.rb +4 -0
- data/lib/milk_tea/lsp/server.rb +9 -0
- data/lib/milk_tea/lsp/workspace/analysis.rb +14 -3
- data/lib/milk_tea/lsp/workspace/caches.rb +17 -1
- data/lib/milk_tea/lsp/workspace/collection.rb +4 -0
- data/lib/milk_tea/lsp/workspace/module_index.rb +134 -0
- data/lib/milk_tea/lsp/workspace/store.rb +9 -4
- data/lib/milk_tea/lsp/workspace.rb +8 -0
- data/lib/milk_tea/tooling/formatter.rb +2 -3
- data/lib/milk_tea/tooling/linter/fix_engine.rb +46 -0
- data/lib/milk_tea/tooling/linter/rules.rb +32 -0
- data/lib/milk_tea/tooling/linter.rb +4 -0
- data/lib/milk_tea/tooling.rb +0 -1
- metadata +4 -3
- data/lib/milk_tea/tooling/cst_formatter.rb +0 -13
|
@@ -35,6 +35,7 @@ module MilkTea
|
|
|
35
35
|
owning-release-double
|
|
36
36
|
prefer-conditional-expression
|
|
37
37
|
prefer-inline-if
|
|
38
|
+
prefer-inline-methods
|
|
38
39
|
prefer-is-variant
|
|
39
40
|
prefer-let
|
|
40
41
|
prefer-let-else
|
|
@@ -69,6 +70,7 @@ module MilkTea
|
|
|
69
70
|
redundant-ignored-match-binding
|
|
70
71
|
prefer-let-else
|
|
71
72
|
prefer-var-else
|
|
73
|
+
prefer-inline-methods
|
|
72
74
|
redundant-bool-compare
|
|
73
75
|
redundant-cast
|
|
74
76
|
redundant-else
|
|
@@ -95,6 +97,7 @@ module MilkTea
|
|
|
95
97
|
"redundant-type-annotation" => "Remove redundant type annotation",
|
|
96
98
|
"prefer-let-else" => "Rewrite as let-else",
|
|
97
99
|
"prefer-var-else" => "Rewrite as var-else",
|
|
100
|
+
"prefer-inline-methods" => "Inline methods into struct",
|
|
98
101
|
"trailing-list-comma" => "Remove trailing list comma",
|
|
99
102
|
}.freeze
|
|
100
103
|
EVENT_STACK_SNAPSHOT_WARNING_THRESHOLD = 128
|
|
@@ -771,6 +774,7 @@ module MilkTea
|
|
|
771
774
|
profile_phase("rule.doc_tag") { emit_doc_tag_warnings(ast) } if full_tier?
|
|
772
775
|
profile_phase("rule.event_capacity") { emit_event_capacity_warnings(ast) }
|
|
773
776
|
profile_phase("rule.trailing_list_comma") { emit_trailing_list_comma_warnings(ast) }
|
|
777
|
+
profile_phase("rule.prefer_inline_methods") { emit_prefer_inline_methods_warnings(ast) }
|
|
774
778
|
profile_phase("rule.line_too_long") { emit_line_too_long_warnings }
|
|
775
779
|
@warnings
|
|
776
780
|
end
|
data/lib/milk_tea/tooling.rb
CHANGED
|
@@ -11,7 +11,6 @@ require_relative "tooling/sexpr_dumper"
|
|
|
11
11
|
require_relative "tooling/sexpr_parser"
|
|
12
12
|
require_relative "tooling/build"
|
|
13
13
|
require_relative "tooling/run"
|
|
14
|
-
require_relative "tooling/cst_formatter"
|
|
15
14
|
require_relative "tooling/error_formatter"
|
|
16
15
|
require_relative "tooling/formatter"
|
|
17
16
|
require_relative "tooling/linter"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mt-lang
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.40
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Long (Teefan) Tran
|
|
@@ -149,6 +149,7 @@ files:
|
|
|
149
149
|
- docs/index.html
|
|
150
150
|
- docs/language-design.md
|
|
151
151
|
- docs/language-manual.md
|
|
152
|
+
- docs/lsp-performance.md
|
|
152
153
|
- lib/milk_tea.rb
|
|
153
154
|
- lib/milk_tea/base.rb
|
|
154
155
|
- lib/milk_tea/bindings.rb
|
|
@@ -338,6 +339,7 @@ files:
|
|
|
338
339
|
- lib/milk_tea/lsp/workspace/collection.rb
|
|
339
340
|
- lib/milk_tea/lsp/workspace/definition_index.rb
|
|
340
341
|
- lib/milk_tea/lsp/workspace/dependency_graph.rb
|
|
342
|
+
- lib/milk_tea/lsp/workspace/module_index.rb
|
|
341
343
|
- lib/milk_tea/lsp/workspace/store.rb
|
|
342
344
|
- lib/milk_tea/lsp/workspace/utilities.rb
|
|
343
345
|
- lib/milk_tea/packages.rb
|
|
@@ -383,7 +385,6 @@ files:
|
|
|
383
385
|
- lib/milk_tea/tooling/cli/commands/snapshot.rb
|
|
384
386
|
- lib/milk_tea/tooling/cli/commands/test.rb
|
|
385
387
|
- lib/milk_tea/tooling/cli/commands/toolchain.rb
|
|
386
|
-
- lib/milk_tea/tooling/cst_formatter.rb
|
|
387
388
|
- lib/milk_tea/tooling/debug_info_formatter.rb
|
|
388
389
|
- lib/milk_tea/tooling/debug_map.rb
|
|
389
390
|
- lib/milk_tea/tooling/docs_app.rb
|
|
@@ -624,7 +625,7 @@ metadata:
|
|
|
624
625
|
homepage_uri: https://teefan.github.io/mt-lang/
|
|
625
626
|
source_code_uri: https://github.com/teefan/mt-lang
|
|
626
627
|
post_install_message: |
|
|
627
|
-
Milk Tea 0.3.
|
|
628
|
+
Milk Tea 0.3.40 installed!
|
|
628
629
|
|
|
629
630
|
System requirements:
|
|
630
631
|
- A C compiler (gcc or clang) must be available on PATH
|