Skip to content

Generic extension exception and multiple extension methos for single userdata: fixes#1

Merged
mistial-dev merged 2 commits intomistial-dev:pr-130from
havietisov:generic_extension_exception_fix
Jun 30, 2025
Merged

Generic extension exception and multiple extension methos for single userdata: fixes#1
mistial-dev merged 2 commits intomistial-dev:pr-130from
havietisov:generic_extension_exception_fix

Conversation

@mistial-dev
Copy link
Owner

Attribution

This PR is from @havietisov - originally submitted as
moonsharp-devs#130


In case we called some extension method in context of some userdata, we are not allowed to call
any other because they will not be indexed (always nil)

example :
userdata.ExtMethod1() --called fine
userdata.ExtMethod2() --null indexer!

and, if we call ExtMethod2 first, ExtMethod1 will be nil

ExtensionMethodsRegistry.GetGenericMatch trying to create GetGenericTypeDefinition of type
parameter.
Example:
TweenSettingsExtensions.SetEase(this T t, Ease ease) //causes exception being thrown, because
we are not allowed to create T<>

Rygor Borodoolin added 2 commits March 8, 2016 11:40
…called extension method in each userdata instance

example :
userdata.ExtMethod1() --called fine
userdata.ExtMethod2() --null indexer!
… case when multiple extension methods with similar signature were available in different extension classes, and one of the extension methods has generic argument as extendable type:

TweenSettingsExtensions.SetEase<T>(this T t, Ease ease) where T : Tween; //this one cause exception shot upon calling SetEase
SpecialTweenExtensions.SetEase(this Tweener @this, Ease ease)
@mistial-dev mistial-dev merged commit 1a669ca into mistial-dev:pr-130 Jun 30, 2025
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.

1 participant