Skip to content

feat(rust): reflection (PR 4 of 7 Rust improvements) #4787

Open
Thorium wants to merge 4 commits into
fable-compiler:mainfrom
Thorium:pr/6-rust-reflection
Open

feat(rust): reflection (PR 4 of 7 Rust improvements) #4787
Thorium wants to merge 4 commits into
fable-compiler:mainfrom
Thorium:pr/6-rust-reflection

Conversation

@Thorium

@Thorium Thorium commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Adds reflection to Rust.
Part of the dependency chain.

Also makes the PropertyGet quotation pattern work: System.Reflection.PropertyInfo now erases to a shared FSharpPropertyInfo carrier (as UnionCaseInfo/MethodInfo already do), used by both reflection and quotations, so pi.Name works from either. The field getter is resolved from the type registry by name, like getValue(pi, v) => v[pi[0]] in JS/TS.

@Thorium
Thorium force-pushed the pr/6-rust-reflection branch 3 times, most recently from 3c27147 to 1431b15 Compare July 14, 2026 22:54
Thorium and others added 3 commits July 15, 2026 21:58
…4781)

=== changelog ===

- Cast `bool` to integer types; support `**` via `.powf`
- Add `Decimal.IsInteger/IsEvenInteger/IsOddInteger/IsCanonical`
- Fix two-switch decision trees dispatching to the wrong target
- Fix reference-typed match bindings panicking via `mem::zeroed`
- Fix string and non-ident option pattern matches emitting invalid Rust `match` arms
- Fix `Convert.ToXxx(bool)`
- Fix `Char.ToUpper/ToLower` truncating multi-char case mappings
- Fix `Random.nextDouble` panic message
- Fix `Map.find/tryFind` panicking on reference-typed values

=== changelog ===

Co-authored-by: Mangel Maxime <me@mangelmaxime.fr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants