-
Notifications
You must be signed in to change notification settings - Fork 246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for public properties defined in a private constructor #256
Conversation
This change is incomplete; the .NET generator doesn't know how to deal with a private ("missing") constructor, so it throws a NullReferenceException.
@costleya I'm going to need your help to land this. Constructors can be private, but I think the .NET generator has been written with the assumption that every class will always have a constructor, and so it errors out trying to access it:
|
Feel free to append to this PR to make it pass. |
Can you please open two issues to add a conformance test in each language for this feature? public void classWithPrivateConstructorAndAutomaticProperties() {
ClassWithPrivateConstructorAndAutomaticProperties obj = new ClassWithPrivateConstructorAndAutomaticProperties();
obj.setReadWriteString("Hello");
assertEquals("<Some expected value>", obj.getReadOnlyString());
} |
@costleya hope it's not too much work, maybe a couple of |
@costleya 🤦♂️ |
@costleya can you push your fixes so we can merge this in and release? |
On it |
Bug Fixes ========= * **dotnet:** abstract classes should have proxy implementations ([#241](#241)) ([828a26f](828a26f)), closes [#223](#223) * **jsii:** better usage reporting of private types ([#247](#247)) ([96ac5d6](96ac5d6)) * **jsii:** support public autoproperties in private constructor ([#256](#256)) ([181012e](181012e)) * **jsii:** use default jsx compiler options ([#260](#260)) ([660ae79](660ae79)), closes [aws/aws-cdk#830](aws/aws-cdk#830) * **jsii-dotnet-generator:** Use FQ type returns in conflict. ([#258](#258)) ([a78784a](a78784a)), closes [#252](#252) * **jsii-runtime:** Use buffer factory methods instead of constructor. ([#246](#246)) ([6ad6b9d](6ad6b9d)) * **kernel:** Return object literals as references ([#249](#249)) ([61cb3a4](61cb3a4)), closes [#248](#248) [aws/aws-cdk#774](aws/aws-cdk#774) Misc ==== bump.sh was updated to let "lerna publish" automatically determine the version number using conventional commits.
Bug Fixes ========= * **dotnet:** abstract classes should have proxy implementations ([#241](#241)) ([828a26f](828a26f)), closes [#223](#223) * **jsii:** better usage reporting of private types ([#247](#247)) ([96ac5d6](96ac5d6)) * **jsii:** support public autoproperties in private constructor ([#256](#256)) ([181012e](181012e)) * **jsii:** use default jsx compiler options ([#260](#260)) ([660ae79](660ae79)), closes [aws/aws-cdk#830](aws/aws-cdk#830) * **jsii-dotnet-generator:** Use FQ type returns in conflict. ([#258](#258)) ([a78784a](a78784a)), closes [#252](#252) * **jsii-runtime:** Use buffer factory methods instead of constructor. ([#246](#246)) ([6ad6b9d](6ad6b9d)) * **kernel:** Return object literals as references ([#249](#249)) ([61cb3a4](61cb3a4)), closes [#248](#248) [aws/aws-cdk#774](aws/aws-cdk#774) Misc ==== bump.sh was updated to let "lerna publish" automatically determine the version number using conventional commits.
This change is incomplete; the .NET generator doesn't know how to
deal with a private ("missing") constructor, so it throws a
NullReferenceException.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.