37 Commits

Author SHA1 Message Date
f145a90845 Fix method slot ID collision between instance and static methods
When createField() was called with a pre-assigned methodId, the ID was
used but methodIdMap was not updated and nextMethodId was not advanced.
This caused assignMethodId() for static methods to reuse slot IDs
already occupied by instance methods.

In complex.lyng, fromInt/imaginary got IDs 12/14 (same as plus/mul),
causing binary operator dispatch via CALL_MEMBER_SLOT to call the wrong
function (e.g. a*b would invoke imaginary instead of mul).

Fix: after computing effectiveMethodId in createField, always register
it in methodIdMap and advance nextMethodId past it so subsequent
auto-assignments start from a clean range.

Also pre-assigns method IDs for non-static fun/fn declarations during
class body pre-scan so forward references resolve correctly in class
bodies, and adds ComplexModuleTest coverage for operator slot dispatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 19:41:18 +03:00
2f145a0ea7 Fix nullable let member inference 2026-04-07 09:33:40 +03:00
583067780f Support object extension indexers 2026-04-07 00:49:51 +03:00
1fca2b112f Fix parsing of generic extension functions 2026-04-06 19:29:06 +03:00
35628c8453 Support extensions on singleton objects 2026-04-06 19:24:28 +03:00
51b0d1fdfc dynamic tests moved to a right suite 2026-02-20 11:16:57 +03:00
6bf99d354b Refactor scope handling and caching, improve dynamic access and tests, bump version to 1.5.1-SNAPSHOT 2026-02-19 16:17:35 +03:00
43a6a7aaf4 Implement qualified cast views for MI 2026-02-04 23:31:41 +03:00
68122df6d7 Fix implicit extension calls and apply scope captures 2026-01-30 16:20:55 +03:00
9a15470cdb Enforce bytecode-only compilation in tests 2026-01-28 19:39:21 +03:00
a4f41f17bf Fix ctor param reassignment regression 2026-01-25 12:35:36 +03:00
7b1ba71ef0 rename testToJsonString and add new test for @Transient serialization 2026-01-18 20:34:58 +03:00
8b94432f66 fixed samples: wrong ?? operator to supported elvis ?: 2026-01-18 20:28:03 +03:00
f848d79d39 more OO tests 2026-01-16 20:43:10 +03:00
05e15e8e42 Add isEmpty, isNotEmpty, and isBlank methods to ObjString, update tests and docs 2026-01-16 07:06:22 +03:00
7bc17037f9 1.2.1-SNAPSHOT: improved visibility check for inheritance 2026-01-15 18:18:35 +03:00
827df9c8cd Fix argument priority handling in ObjInstance resolution logic and add corresponding tests 2026-01-10 20:25:06 +01:00
eec732d11a implemented object expressions (anonymous classes) 2026-01-06 01:25:01 +01:00
514ad96148 AccessException -< IllegalAccessException; added TODO() and NotImplementedException 2026-01-05 11:14:05 +01:00
e0a59c8db6 cleaning up OOTest 2026-01-05 10:35:38 +01:00
f5a3fbe9a3 docs refined 2026-01-04 22:50:49 +01:00
11eadc1d9f abstract classes, interfaces, MI auto implementation and fine-grained visibility 2026-01-04 22:30:24 +01:00
eca451b5a3 Implement restricted setter visibility (private set / protected set) for class fields and properties. 2026-01-03 23:38:53 +01:00
54af50d6d6 Implement support for late-initialized val fields in classes. Added ObjUnset, UnsetException, compile-time initialization checks, and write-once enforcement for val fields. 2026-01-03 22:05:29 +01:00
ce0fc3650d "cache" bug found and fixed, causing some improvemts in lambda processing. 2026-01-03 21:06:09 +01:00
cd2b1a9cb7 Extensions methods and properties now are correctly isolated, respect visibility rules and allow adding class properties and class vals. 2025-12-24 00:29:10 +01:00
0732202c80 improved vairable tracking, fixed plugin to wirk with 1.0.10, fixed lambda comparison 2025-12-22 14:55:53 +01:00
76a1804dc1 Implement init blocks for instance initialization, refactor class initialization logic to ensure correct inheritance and constructor chaining, update documentation and add tests. 2025-12-21 18:14:51 +01:00
b8d6ff01a6 fixed invoke overriden field problem in dynamic and the dynamic's Lyng class. 2025-11-01 22:07:22 +01:00
ba725fc9ed less debug noise
open ObjDynamic
found a pfoblem with dynamic, see todo in OOTest.kt
2025-11-01 18:33:37 +01:00
c854b06683 fixed comment before else in if;
dynamic now support indexing access
2025-10-04 11:25:19 +04:00
8d1cafae80 fix #55 newlines in function declarations and constructors 2025-08-20 11:07:49 +03:00
2adb0ff512 +copyrght, apache 2.0 2025-08-13 23:22:04 +03:00
6d8eed7b8c added "dynamic" fields (get/set/call fields by name using dynamic standard function 2025-08-12 00:15:45 +03:00
e916d9805a correct end-block token processing (detect more errors) 2025-08-11 22:48:43 +03:00
53a6a88924 fix #42 class static fields and methods 2025-08-06 22:48:32 +03:00
63b2808109 well redesigned class vals and vars, classScope introduced for class functions 2025-08-06 11:46:17 +03:00