handzlikchris / handzlikchris/FastScriptReload

'This' rewriting causes some issues with rewritting generic methods

Open
#9 0 comments 0 reactions 0 assignees View on GitHub
bug user-code-rewrite
Dominant language
C#
Stars
2.2k
Forks
167
PR merge metrics
No merged PRs in 30d

Description

KillerJoe — Yesterday at 20:02
next problem: I have a generic Method "Parent" for the UiElements:

public static T Parent(this T element, VisualElement parent, bool grow = false, int? insertIndex = null) where T : VisualElement {

its changed to ".Parent((dynamic)this)" causing an compile error.

FSR: Error when updating files: 'LoadByUrl.cs', System.Exception: Compiler failed to produce the assembly. Output: 'C:\Users\tfoso\AppData\Local\Temp\3bcdba1c62ed4b1d9e72f62953347396.SourceCodeCombined.cs(222,15): error CS1929: 'HorizontalPanel' does not contain a definition for 'Parent' and the best extension method overload 'VisualElementExtension.Parent(T, VisualElement, bool, int?)' requires a receiver of type 'T'

C:\Users\tfoso\AppData\Local\Temp\3bcdba1c62ed4b1d9e72f62953347396.SourceCodeCombined.cs(259,87): error CS1929: 'I18nLabel' does not contain a definition for 'Parent' and the best extension method overload 'VisualElementExtension.Parent(T, VisualElement, bool, int?)' requires a receiver of type 'T'

[ ] Killer Joe from Discord

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the compiler errors reported while updating LoadByUrl.cs and compare the original generic Parent extension call with its rewritten `.Parent((dynamic)this)` form. Trace the rewriting logic that produces the generated source, then verify that calls on HorizontalPanel and I18nLabel compile without the CS1929 errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, unity
Domain
compilers, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.