mt-lang 0.2.6 → 0.2.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10511367134e7b86901ee81dd22007c1e902139f3dc3e738edcbbab52ce6f978
4
- data.tar.gz: bbb13727c9cbecc0dc890e6d2f66620c1e28a9e0c9d924600c34ee29b19bb1f8
3
+ metadata.gz: b02adcca2cd2665b97f3a32f18130ed355dad80950220475ff623ccc6254250b
4
+ data.tar.gz: f23de0c1d00fc7f9bd8f6275a921c2b92824b3920425b3fc9f0e1734ecfe2a1a
5
5
  SHA512:
6
- metadata.gz: f3c5d9fb56448090e0576193a8a892f88fa1f8185c49d11f42e6946cecf6545cef4027da911e1ed7714aad46b740796e872788a936fda47a4276fd02df3adfae
7
- data.tar.gz: 97dd1426ab931fb7776a910767d7182113490bd936cc534868ed80046f368c17034099305ab4ee1dd8be09fd6c4acd0cf89d1061527617b583e578250eafd324
6
+ metadata.gz: f29063940f36a621591a64f017e3357aef18db3b7f576f1a0af056514ffee08b67bf1ffd45dc6c2066fd6f27103b5a8e3bced0139415dd558a3e3a0dad5a7cc9
7
+ data.tar.gz: 4a07fd8a9469cec594b55a41fd7bb7f6220a5baa8653ec4a297d5e06ac80e79f4e1a3b4b69cde79185acb2863d1fe7372e5c9cd2d439a95d3bbe46423d5e2c9d
data/README.md CHANGED
@@ -269,6 +269,7 @@ struct Rectangle:
269
269
  - Nested structs may themselves contain nested structs to arbitrary depth.
270
270
  - The generated C name uses underscore-separated path components (e.g., `module_Rectangle_Edge`).
271
271
 
272
+ ```mt
272
273
  union Number:
273
274
  i: int
274
275
  f: float
@@ -276,8 +277,10 @@ union Number:
276
277
  enum State: ubyte
277
278
  idle = 0
278
279
  running = 1
280
+ ```
279
281
 
280
- # Backing type defaults to int; values auto-increment from 0:
282
+ Backing type defaults to int; values auto-increment from 0:
283
+ ```mt
281
284
  enum Color:
282
285
  red
283
286
  green
data/lib/milk_tea/base.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  require "pathname"
4
4
 
5
5
  module MilkTea
6
- VERSION = "0.2.6"
6
+ VERSION = "0.2.7"
7
7
 
8
8
  def self.root
9
9
  @root ||= Pathname.new(File.expand_path("../..", __dir__))
@@ -1342,7 +1342,11 @@ module MilkTea
1342
1342
  imported_module = @ctx.imports.fetch(callee.receiver.name)
1343
1343
  return [:function, imported_module.functions.fetch(callee.member), nil] if imported_module.functions.key?(callee.member)
1344
1344
  imported_type = imported_module.types[callee.member]
1345
- if imported_type.is_a?(Types::Struct) || imported_type.is_a?(Types::GenericStructDefinition) || imported_type.is_a?(Types::StringView) || task_type?(imported_type) || imported_type.is_a?(Types::Vector) || imported_type.is_a?(Types::Matrix) || imported_type.is_a?(Types::Quaternion)
1345
+ if imported_type.is_a?(Types::GenericStructDefinition) || imported_type.is_a?(Types::GenericVariantDefinition)
1346
+ raise_sema_error("generic type #{callee.receiver.name}.#{callee.member} requires type arguments", callee)
1347
+ end
1348
+
1349
+ if imported_type.is_a?(Types::Struct) || imported_type.is_a?(Types::StringView) || task_type?(imported_type) || imported_type.is_a?(Types::Vector) || imported_type.is_a?(Types::Matrix) || imported_type.is_a?(Types::Quaternion)
1346
1350
  return [:struct, imported_module.types.fetch(callee.member), nil]
1347
1351
  end
1348
1352
 
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.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Long (Teefan) Tran
@@ -583,7 +583,7 @@ metadata:
583
583
  homepage_uri: https://teefan.github.io/mt-lang/
584
584
  source_code_uri: https://github.com/teefan/mt-lang
585
585
  post_install_message: |
586
- Milk Tea 0.2.6 installed!
586
+ Milk Tea 0.2.7 installed!
587
587
 
588
588
  System requirements:
589
589
  - A C compiler (gcc or clang) must be available on PATH