Skip to content

Conversation

@RReverser
Copy link
Contributor

Currently, we have to copy-paste and hardcode property names and types from the runtime in the codegen, which is pretty error-prone, and is getting harder as our API is going to rapidly expand.

In this PR I'm implementing a basic helper that allows to reuse original attribute classes from the runtime in the codegen by taking the syntax data and reconstructing the same attribute instance via reflection.

This ensures that we have all the same typechecked properties on both sides instead of having to extract them manually by name + explicit casts.

Description of Changes

Please describe your change, mention any related tickets, and so on here.

API and ABI breaking changes

If this is an API or ABI breaking change, please apply the
corresponding GitHub label.

Expected complexity level and risk

How complicated do you think these changes are? Grade on a scale from 1 to 5,
where 1 is a trivial change, and 5 is a deep-reaching and complex change.

This complexity rating applies not only to the complexity apparent in the diff,
but also to its interactions with existing and future code.

If you answered more than a 2, explain what is complex about the PR,
and what other components it interacts with in potentially concerning ways.

Testing

Describe any testing you've done, and any testing you'd like your reviewers to do,
so that you're confident that all the changes work as expected!

  • Write a test you've completed here.
  • Write a test you want a reviewer to do here, so they can check it off when they're satisfied.

Currently, we have to copy-paste and hardcode property names and types from the runtime in the codegen, which is pretty error-prone, and is getting harder as our API is going to rapidly expand.

In this PR I'm implementing a basic helper that allows to reuse original attribute classes from the runtime in the codegen by taking the syntax data and reconstructing the same attribute instance via reflection.

This ensures that we have all the same typechecked properties on both sides instead of having to extract them manually by name + explicit casts.
@RReverser RReverser mentioned this pull request Sep 18, 2024
@RReverser RReverser added this pull request to the merge queue Sep 23, 2024
Merged via the queue into master with commit 9f62399 Sep 23, 2024
@RReverser RReverser deleted the ingvar/csharp-parse-attr branch September 23, 2024 17:01
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.

3 participants