From a4eb0d2d6a6213807071f877b9fa071f291d1b3c Mon Sep 17 00:00:00 2001 From: Elad Ben-Israel Date: Wed, 7 Nov 2018 12:21:13 +0200 Subject: [PATCH] fix(jsii-runtime): treat "null" as "undefined" Since most languages do not have a distinction between "null" and "undefined", jsii will effectively convert any "null" value passed into an argument, a property or inside an object to "undefined". Adds a compliance test to Java and .NET called "NullShouldBeTreatedAsUndefined". Fixes awslabs/aws-cdk#157 Fixes #282 --- .vscode/settings.json | 3 + packages/jsii-calc/lib/compliance.ts | 46 ++++++++ packages/jsii-calc/test/assembly.jsii | 96 +++++++++++++++- .../ComplianceTests.cs | 21 ++++ .../jsii-java-runtime-test/project/.gitignore | 2 + .../amazon/jsii/testing/ComplianceTest.java | 14 +++ packages/jsii-java-runtime/project/.gitignore | 2 + packages/jsii-kernel/lib/kernel.ts | 5 +- packages/jsii-kernel/test/test.kernel.ts | 23 ++++ .../jsii/tests/calculator/base/$Module.class | Bin 0 -> 2789 bytes .../calculator/base/Base$Jsii$Proxy.class | Bin 0 -> 1405 bytes .../jsii/tests/calculator/base/Base.class | Bin 0 -> 1873 bytes .../calculator/base/BaseProps$Builder.class | Bin 0 -> 4568 bytes .../base/BaseProps$Jsii$Proxy.class | Bin 0 -> 4425 bytes .../tests/calculator/base/BaseProps.class | Bin 0 -> 3305 bytes .../jsii/tests/calculator/lib/$Module.class | Bin 0 -> 3181 bytes .../calculator/lib/EnumFromScopedModule.class | Bin 0 -> 1341 bytes .../lib/IDoublable$Jsii$Proxy.class | Bin 0 -> 1869 bytes .../tests/calculator/lib/IDoublable.class | Bin 0 -> 1347 bytes .../calculator/lib/IFriendly$Jsii$Proxy.class | Bin 0 -> 1855 bytes .../jsii/tests/calculator/lib/IFriendly.class | Bin 0 -> 1335 bytes .../lib/MyFirstStruct$Builder.class | Bin 0 -> 6362 bytes .../lib/MyFirstStruct$Jsii$Proxy.class | Bin 0 -> 5561 bytes .../tests/calculator/lib/MyFirstStruct.class | Bin 0 -> 4728 bytes .../jsii/tests/calculator/lib/Number.class | Bin 0 -> 2330 bytes .../calculator/lib/Operation$Jsii$Proxy.class | Bin 0 -> 2510 bytes .../jsii/tests/calculator/lib/Operation.class | Bin 0 -> 1922 bytes .../lib/StructWithOnlyOptionals$Builder.class | Bin 0 -> 7096 bytes .../StructWithOnlyOptionals$Jsii$Proxy.class | Bin 0 -> 6414 bytes .../lib/StructWithOnlyOptionals.class | Bin 0 -> 4928 bytes .../calculator/lib/Value$Jsii$Proxy.class | Bin 0 -> 2123 bytes .../jsii/tests/calculator/lib/Value.class | Bin 0 -> 2447 bytes .../.jsii | 96 +++++++++++++++- .../INullShouldBeTreatedAsUndefinedData.cs | 22 ++++ .../NullShouldBeTreatedAsUndefined.cs | 46 ++++++++ .../NullShouldBeTreatedAsUndefinedData.cs | 21 ++++ ...NullShouldBeTreatedAsUndefinedDataProxy.cs | 26 +++++ .../jsii/tests/calculator/$Module.class | Bin 0 -> 7799 bytes .../calculator/AbstractClass$Jsii$Proxy.class | Bin 0 -> 3198 bytes .../jsii/tests/calculator/AbstractClass.class | Bin 0 -> 3284 bytes .../AbstractClassBase$Jsii$Proxy.class | Bin 0 -> 2060 bytes .../tests/calculator/AbstractClassBase.class | Bin 0 -> 2050 bytes .../calculator/AbstractClassReturner.class | Bin 0 -> 3202 bytes .../amazon/jsii/tests/calculator/Add.class | Bin 0 -> 2721 bytes .../jsii/tests/calculator/AllTypes.class | Bin 0 -> 10166 bytes .../jsii/tests/calculator/AllTypesEnum.class | Bin 0 -> 1335 bytes .../tests/calculator/AllowedMethodNames.class | Bin 0 -> 3610 bytes .../calculator/AsyncVirtualMethods.class | Bin 0 -> 3442 bytes .../BinaryOperation$Jsii$Proxy.class | Bin 0 -> 3316 bytes .../tests/calculator/BinaryOperation.class | Bin 0 -> 3442 bytes .../jsii/tests/calculator/Calculator.class | Bin 0 -> 7357 bytes .../calculator/CalculatorProps$Builder.class | Bin 0 -> 5138 bytes .../CalculatorProps$Jsii$Proxy.class | Bin 0 -> 4562 bytes .../tests/calculator/CalculatorProps.class | Bin 0 -> 3820 bytes ...lassWithMutableObjectLiteralProperty.class | Bin 0 -> 2323 bytes ...ateConstructorAndAutomaticProperties.class | Bin 0 -> 3680 bytes .../DefaultedConstructorArgument.class | Bin 0 -> 3697 bytes .../DerivedClassHasNoProperties/Base.class | Bin 0 -> 2050 bytes .../DerivedClassHasNoProperties/Derived.class | Bin 0 -> 1411 bytes .../calculator/DerivedStruct$Builder.class | Bin 0 -> 8833 bytes .../calculator/DerivedStruct$Jsii$Proxy.class | Bin 0 -> 6737 bytes .../jsii/tests/calculator/DerivedStruct.class | Bin 0 -> 5625 bytes .../calculator/DoNotOverridePrivates.class | Bin 0 -> 2426 bytes .../jsii/tests/calculator/DoubleTrouble.class | Bin 0 -> 2517 bytes .../jsii/tests/calculator/GiveMeStructs.class | Bin 0 -> 3573 bytes .../calculator/IFriendlier$Jsii$Proxy.class | Bin 0 -> 2500 bytes .../jsii/tests/calculator/IFriendlier.class | Bin 0 -> 1885 bytes .../IFriendlyRandomGenerator$Jsii$Proxy.class | Bin 0 -> 2581 bytes .../calculator/IFriendlyRandomGenerator.class | Bin 0 -> 626 bytes ...eThatShouldNotBeADataType$Jsii$Proxy.class | Bin 0 -> 2875 bytes .../IInterfaceThatShouldNotBeADataType.class | Bin 0 -> 1944 bytes .../IInterfaceWithMethods$Jsii$Proxy.class | Bin 0 -> 2401 bytes .../calculator/IInterfaceWithMethods.class | Bin 0 -> 1563 bytes ...thOptionalMethodArguments$Jsii$Proxy.class | Bin 0 -> 2800 bytes ...InterfaceWithOptionalMethodArguments.class | Bin 0 -> 1883 bytes .../IRandomNumberGenerator$Jsii$Proxy.class | Bin 0 -> 1921 bytes .../calculator/IRandomNumberGenerator.class | Bin 0 -> 1370 bytes .../IReturnsNumber$Jsii$Proxy.class | Bin 0 -> 2681 bytes .../tests/calculator/IReturnsNumber.class | Bin 0 -> 1820 bytes .../ImplictBaseOfBase$Builder.class | Bin 0 -> 6343 bytes .../ImplictBaseOfBase$Jsii$Proxy.class | Bin 0 -> 5865 bytes .../tests/calculator/ImplictBaseOfBase.class | Bin 0 -> 4250 bytes ...ceImplementedByAbstractClass$Builder.class | Bin 0 -> 2667 bytes ...mplementedByAbstractClass$Jsii$Proxy.class | Bin 0 -> 2516 bytes .../InterfaceImplementedByAbstractClass.class | Bin 0 -> 2253 bytes .../Foo.class | Bin 0 -> 2263 bytes .../Hello$Builder.class | Bin 0 -> 3267 bytes .../Hello$Jsii$Proxy.class | Bin 0 -> 3118 bytes .../Hello.class | Bin 0 -> 2676 bytes .../Hello$Builder.class | Bin 0 -> 3253 bytes .../Hello$Jsii$Proxy.class | Bin 0 -> 3106 bytes .../Hello.class | Bin 0 -> 2664 bytes .../InterfaceWithProperties$Builder.class | Bin 0 -> 3894 bytes .../InterfaceWithProperties$Jsii$Proxy.class | Bin 0 -> 3624 bytes .../calculator/InterfaceWithProperties.class | Bin 0 -> 3094 bytes ...rfaceWithPropertiesExtension$Builder.class | Bin 0 -> 5789 bytes ...ceWithPropertiesExtension$Jsii$Proxy.class | Bin 0 -> 5148 bytes .../InterfaceWithPropertiesExtension.class | Bin 0 -> 4143 bytes .../JSObjectLiteralForInterface.class | Bin 0 -> 2577 bytes .../calculator/JSObjectLiteralToNative.class | Bin 0 -> 1965 bytes .../JSObjectLiteralToNativeClass.class | Bin 0 -> 2721 bytes .../tests/calculator/JavaReservedWords.class | Bin 0 -> 10895 bytes .../jsii/tests/calculator/Multiply.class | Bin 0 -> 4013 bytes .../MutableObjectLiteral$Builder.class | Bin 0 -> 2944 bytes .../MutableObjectLiteral$Jsii$Proxy.class | Bin 0 -> 2897 bytes .../calculator/MutableObjectLiteral.class | Bin 0 -> 2440 bytes .../amazon/jsii/tests/calculator/Negate.class | Bin 0 -> 3495 bytes .../calculator/NodeStandardLibrary.class | Bin 0 -> 2916 bytes .../NullShouldBeTreatedAsUndefined.class | Bin 0 -> 4345 bytes ...ouldBeTreatedAsUndefinedData$Builder.class | Bin 0 -> 4959 bytes ...dBeTreatedAsUndefinedData$Jsii$Proxy.class | Bin 0 -> 4488 bytes .../NullShouldBeTreatedAsUndefinedData.class | Bin 0 -> 3882 bytes .../tests/calculator/NumberGenerator.class | Bin 0 -> 3331 bytes .../calculator/ObjectRefsInCollections.class | Bin 0 -> 1731 bytes .../OptionalConstructorArgument.class | Bin 0 -> 3731 bytes .../calculator/OverrideReturnsObject.class | Bin 0 -> 1894 bytes .../jsii/tests/calculator/Polymorphism.class | Bin 0 -> 1869 bytes .../amazon/jsii/tests/calculator/Power.class | Bin 0 -> 2877 bytes .../ReferenceEnumFromScopedPackage.class | Bin 0 -> 3418 bytes .../calculator/RuntimeTypeChecking.class | Bin 0 -> 5238 bytes .../jsii/tests/calculator/Statics.class | Bin 0 -> 5574 bytes .../jsii/tests/calculator/StringEnum.class | Bin 0 -> 1095 bytes .../amazon/jsii/tests/calculator/Sum.class | Bin 0 -> 2198 bytes .../tests/calculator/SyncVirtualMethods.class | Bin 0 -> 7412 bytes .../jsii/tests/calculator/Thrower.class | Bin 0 -> 1601 bytes .../UnaryOperation$Jsii$Proxy.class | Bin 0 -> 2618 bytes .../tests/calculator/UnaryOperation.class | Bin 0 -> 2321 bytes .../calculator/UnionProperties$Builder.class | Bin 0 -> 5821 bytes .../UnionProperties$Jsii$Proxy.class | Bin 0 -> 4868 bytes .../tests/calculator/UnionProperties.class | Bin 0 -> 3883 bytes .../calculator/UseBundledDependency.class | Bin 0 -> 1866 bytes .../jsii/tests/calculator/UseCalcBase.class | Bin 0 -> 1811 bytes .../UsesInterfaceWithProperties.class | Bin 0 -> 3699 bytes .../tests/calculator/VariadicMethod.class | Bin 0 -> 1709 bytes .../calculator/VirtualMethodPlayground.class | Bin 0 -> 2754 bytes ...siteOperation$CompositionStringStyle.class | Bin 0 -> 3559 bytes .../CompositeOperation$Jsii$Proxy.class | Bin 0 -> 4814 bytes .../composition/CompositeOperation.class | Bin 0 -> 5734 bytes .../amazon/jsii/tests/calculator/$Module.java | 2 + .../NullShouldBeTreatedAsUndefined.java | 45 ++++++++ .../NullShouldBeTreatedAsUndefinedData.java | 108 ++++++++++++++++++ .../expected.jsii-calc/sphinx/jsii-calc.rst | 95 +++++++++++++++ 142 files changed, 669 insertions(+), 4 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/$Module.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/Base$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/Base.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/BaseProps$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/BaseProps$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/BaseProps.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/$Module.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/EnumFromScopedModule.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IDoublable$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IDoublable.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IFriendly$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IFriendly.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/MyFirstStruct$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/MyFirstStruct$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/MyFirstStruct.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Number.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Operation$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Operation.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Value$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Value.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/INullShouldBeTreatedAsUndefinedData.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefined.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedData.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedDataProxy.cs create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/$Module.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClass$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClass.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassBase$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassBase.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassReturner.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Add.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AllTypes.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AllTypesEnum.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AllowedMethodNames.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AsyncVirtualMethods.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/BinaryOperation$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/BinaryOperation.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Calculator.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/CalculatorProps$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/CalculatorProps$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/CalculatorProps.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ClassWithMutableObjectLiteralProperty.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ClassWithPrivateConstructorAndAutomaticProperties.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DefaultedConstructorArgument.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedClassHasNoProperties/Base.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedClassHasNoProperties/Derived.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedStruct$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedStruct$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedStruct.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DoNotOverridePrivates.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DoubleTrouble.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/GiveMeStructs.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlier$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlier.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlyRandomGenerator$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlyRandomGenerator.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceThatShouldNotBeADataType$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceThatShouldNotBeADataType.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithMethods$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithMethods.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithOptionalMethodArguments$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithOptionalMethodArguments.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IRandomNumberGenerator$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IRandomNumberGenerator.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IReturnsNumber$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IReturnsNumber.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ImplictBaseOfBase$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ImplictBaseOfBase$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ImplictBaseOfBase.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Foo.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Hello$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Hello$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Hello.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceOnlyInterface/Hello$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceOnlyInterface/Hello$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceOnlyInterface/Hello.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithProperties$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithProperties$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithProperties.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithPropertiesExtension$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithPropertiesExtension$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithPropertiesExtension.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JSObjectLiteralForInterface.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JSObjectLiteralToNative.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JSObjectLiteralToNativeClass.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JavaReservedWords.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Multiply.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/MutableObjectLiteral$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/MutableObjectLiteral$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/MutableObjectLiteral.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Negate.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NodeStandardLibrary.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefined.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NumberGenerator.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ObjectRefsInCollections.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/OptionalConstructorArgument.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/OverrideReturnsObject.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Polymorphism.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Power.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ReferenceEnumFromScopedPackage.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/RuntimeTypeChecking.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Statics.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/StringEnum.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Sum.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/SyncVirtualMethods.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Thrower.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnaryOperation$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnaryOperation.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties$Builder.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UseBundledDependency.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UseCalcBase.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UsesInterfaceWithProperties.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/VariadicMethod.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/VirtualMethodPlayground.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/composition/CompositeOperation$CompositionStringStyle.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/composition/CompositeOperation$Jsii$Proxy.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/composition/CompositeOperation.class create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefined.java create mode 100644 packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData.java diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..1133129421 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic" +} \ No newline at end of file diff --git a/packages/jsii-calc/lib/compliance.ts b/packages/jsii-calc/lib/compliance.ts index 783a5a94cf..bb6fb9ea10 100644 --- a/packages/jsii-calc/lib/compliance.ts +++ b/packages/jsii-calc/lib/compliance.ts @@ -939,3 +939,49 @@ export interface IInterfaceWithMethods { export interface IInterfaceThatShouldNotBeADataType extends IInterfaceWithMethods { readonly otherValue: string; } + +/** + * jsii#282, aws-cdk#157: null should be treated as "undefined" + */ +export class NullShouldBeTreatedAsUndefined { + public changeMeToUndefined? = "hello"; + + constructor(_param1: string, optional?: any) { + if (optional !== undefined) { + throw new Error('Expecting second constructor argument to be "undefined"'); + } + } + + public giveMeUndefined(value?: any) { + if (value !== undefined) { + throw new Error('I am disappointed. I expected undefined and got: ' + JSON.stringify(value)); + } + } + + public giveMeUndefinedInsideAnObject(input: NullShouldBeTreatedAsUndefinedData) { + if (input.thisShouldBeUndefined !== undefined) { + throw new Error('I am disappointed. I expected undefined in "thisShouldBeUndefined" and got: ' + JSON.stringify(input)); + } + + const array = input.arrayWithThreeElementsAndUndefinedAsSecondArgument; + if (array.length !== 3) { + throw new Error('Expecting "arrayWithThreeElementsAndUndefinedAsSecondArgument" to have three elements: ' + JSON.stringify(input)); + } + + if (array[1] !== undefined) { + throw new Error('Expected arrayWithThreeElementsAndUndefinedAsSecondArgument[1] to be undefined: ' + JSON.stringify(input)) + } + } + + public verifyPropertyIsUndefined() { + if (this.changeMeToUndefined !== undefined) { + throw new Error('Expecting property "changeMeToUndefined" to be undefined, and it is: ' + this.changeMeToUndefined); + } + } +} + +export interface NullShouldBeTreatedAsUndefinedData { + thisShouldBeUndefined?: any; + arrayWithThreeElementsAndUndefinedAsSecondArgument: any[]; +} + diff --git a/packages/jsii-calc/test/assembly.jsii b/packages/jsii-calc/test/assembly.jsii index 97e7a8e8a5..f67548d7a0 100644 --- a/packages/jsii-calc/test/assembly.jsii +++ b/packages/jsii-calc/test/assembly.jsii @@ -2240,6 +2240,100 @@ } ] }, + "jsii-calc.NullShouldBeTreatedAsUndefined": { + "assembly": "jsii-calc", + "docs": { + "comment": "jsii#282, aws-cdk#157: null should be treated as \"undefined\"" + }, + "fqn": "jsii-calc.NullShouldBeTreatedAsUndefined", + "initializer": { + "initializer": true, + "parameters": [ + { + "name": "_param1", + "type": { + "primitive": "string" + } + }, + { + "name": "optional", + "type": { + "optional": true, + "primitive": "any" + } + } + ] + }, + "kind": "class", + "methods": [ + { + "name": "giveMeUndefined", + "parameters": [ + { + "name": "value", + "type": { + "optional": true, + "primitive": "any" + } + } + ] + }, + { + "name": "giveMeUndefinedInsideAnObject", + "parameters": [ + { + "name": "input", + "type": { + "fqn": "jsii-calc.NullShouldBeTreatedAsUndefinedData" + } + } + ] + }, + { + "name": "verifyPropertyIsUndefined" + } + ], + "name": "NullShouldBeTreatedAsUndefined", + "properties": [ + { + "name": "changeMeToUndefined", + "type": { + "optional": true, + "primitive": "string" + } + } + ] + }, + "jsii-calc.NullShouldBeTreatedAsUndefinedData": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.NullShouldBeTreatedAsUndefinedData", + "kind": "interface", + "name": "NullShouldBeTreatedAsUndefinedData", + "properties": [ + { + "abstract": true, + "name": "arrayWithThreeElementsAndUndefinedAsSecondArgument", + "type": { + "collection": { + "elementtype": { + "optional": true, + "primitive": "any" + }, + "kind": "array" + } + } + }, + { + "abstract": true, + "name": "thisShouldBeUndefined", + "type": { + "optional": true, + "primitive": "any" + } + } + ] + }, "jsii-calc.NumberGenerator": { "assembly": "jsii-calc", "docs": { @@ -3412,5 +3506,5 @@ } }, "version": "0.7.8", - "fingerprint": "Xn7Rk17rqR3AaMx3+ssxT0GR1sCWwz0OGC+C8QuLI3A=" + "fingerprint": "pk8FZVsu/yw+n0kGFMHn2Oan1rI1PjQQsUqnp+yB3js=" } diff --git a/packages/jsii-dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs b/packages/jsii-dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs index ff6747a7be..7cd6934249 100644 --- a/packages/jsii-dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs +++ b/packages/jsii-dotnet-runtime-test/test/Amazon.JSII.Runtime.IntegrationTests/ComplianceTests.cs @@ -827,6 +827,27 @@ public void TestReturnInterfaceFromOverride() Assert.Equal(4 * n, obj.Test(arg)); } + [Fact(DisplayName = Prefix + nameof(NullShouldBeTreatedAsUndefined))] + public void NullShouldBeTreatedAsUndefined() + { + // ctor + var obj = new NullShouldBeTreatedAsUndefined("param1", null); + + // method argument + obj.GiveMeUndefined(null); + + // inside object + obj.GiveMeUndefinedInsideAnObject(new NullShouldBeTreatedAsUndefinedData + { + ThisShouldBeUndefined = null, + ArrayWithThreeElementsAndUndefinedAsSecondArgument = new[] { "hello", null, "world" } + }); + + // property + obj.ChangeMeToUndefined = null; + obj.VerifyPropertyIsUndefined(); + } + class NumberReturner : DeputyBase, IIReturnsNumber { public NumberReturner(double number) diff --git a/packages/jsii-java-runtime-test/project/.gitignore b/packages/jsii-java-runtime-test/project/.gitignore index 58d35b13a4..46aa9ff1a5 100644 --- a/packages/jsii-java-runtime-test/project/.gitignore +++ b/packages/jsii-java-runtime-test/project/.gitignore @@ -1,3 +1,5 @@ +bin/ + !index.js .idea pom.xml diff --git a/packages/jsii-java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java b/packages/jsii-java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java index f2c437819b..48dac8a445 100644 --- a/packages/jsii-java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java +++ b/packages/jsii-java-runtime-test/project/src/test/java/software/amazon/jsii/testing/ComplianceTest.java @@ -25,6 +25,8 @@ import software.amazon.jsii.tests.calculator.Multiply; import software.amazon.jsii.tests.calculator.Negate; import software.amazon.jsii.tests.calculator.NodeStandardLibrary; +import software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefined; +import software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefinedData; import software.amazon.jsii.tests.calculator.NumberGenerator; import software.amazon.jsii.tests.calculator.Polymorphism; import software.amazon.jsii.tests.calculator.Power; @@ -927,6 +929,18 @@ public void classWithPrivateConstructorAndAutomaticProperties() { assertEquals("Hello", obj.getReadOnlyString()); } + @Test + public void nullShouldBeTreatedAsUndefined() { + NullShouldBeTreatedAsUndefined obj = new NullShouldBeTreatedAsUndefined("hello", null); + obj.giveMeUndefined(null); + obj.giveMeUndefinedInsideAnObject(NullShouldBeTreatedAsUndefinedData.builder() + .withThisShouldBeUndefined(null) + .withArrayWithThreeElementsAndUndefinedAsSecondArgument(Arrays.asList("hello", null, "boom")) + .build()); + obj.setChangeMeToUndefined(null); + obj.verifyPropertyIsUndefined(); + } + static class MulTen extends Multiply { public MulTen(final int value) { super(new Number(value), new Number(10)); diff --git a/packages/jsii-java-runtime/project/.gitignore b/packages/jsii-java-runtime/project/.gitignore index d0b519a66f..a6e9c72336 100644 --- a/packages/jsii-java-runtime/project/.gitignore +++ b/packages/jsii-java-runtime/project/.gitignore @@ -1,3 +1,5 @@ +bin/ + !index.js .idea pom.xml diff --git a/packages/jsii-kernel/lib/kernel.ts b/packages/jsii-kernel/lib/kernel.ts index a7f5241ba9..c508e34599 100644 --- a/packages/jsii-kernel/lib/kernel.ts +++ b/packages/jsii-kernel/lib/kernel.ts @@ -877,9 +877,10 @@ export class Kernel { return undefined; } - // null + // null is treated as "undefined" because most languages do not have this distinction + // see awslabs/aws-cdk#157 and awslabs/jsii#282 if (v === null) { - return null; + return undefined; } // pointer diff --git a/packages/jsii-kernel/test/test.kernel.ts b/packages/jsii-kernel/test/test.kernel.ts index bd778be7d5..7d54fe430f 100644 --- a/packages/jsii-kernel/test/test.kernel.ts +++ b/packages/jsii-kernel/test/test.kernel.ts @@ -936,6 +936,29 @@ defineTest('overrides: skip overrides of private properties', async (test, sandb test.deepEqual(result.result, 'privateProperty'); }); +defineTest('nulls are converted to undefined - ctor', async (_test, sandbox) => { + sandbox.create({ fqn: 'jsii-calc.NullShouldBeTreatedAsUndefined', args: [ "foo", null ] }); +}); + +defineTest('nulls are converted to undefined - method arguments', async (_test, sandbox) => { + const objref = sandbox.create({ fqn: 'jsii-calc.NullShouldBeTreatedAsUndefined', args: [ "foo" ] }); + sandbox.invoke({ objref, method: 'giveMeUndefined', args: [ null ] }); +}); + +defineTest('nulls are converted to undefined - inside objects', async (_test, sandbox) => { + const objref = sandbox.create({ fqn: 'jsii-calc.NullShouldBeTreatedAsUndefined', args: [ "foo" ] }); + sandbox.invoke({ objref, method: 'giveMeUndefinedInsideAnObject', args: [ { + thisShouldBeUndefined: null, + arrayWithThreeElementsAndUndefinedAsSecondArgument: [ 'one', null, 'two' ] + } ]}); +}); + +defineTest('nulls are converted to undefined - properties', async (_test, sandbox) => { + const objref = sandbox.create({ fqn: 'jsii-calc.NullShouldBeTreatedAsUndefined', args: [ "foo" ] }); + sandbox.set({ objref, property: 'changeMeToUndefined', value: null }); + sandbox.invoke({ objref, method: 'verifyPropertyIsUndefined' }); +}); + // ================================================================================================= const testNames: { [name: string]: boolean } = { }; diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/$Module.class b/packages/jsii-pacmak/test/expected.jsii-calc-base/java/bin/src/main/java/software/amazon/jsii/tests/calculator/base/$Module.class new file mode 100644 index 0000000000000000000000000000000000000000..8f2c52a6424a173761850ab1d43f3889da06065b GIT binary patch literal 2789 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 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/$Module.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/$Module.class new file mode 100644 index 0000000000000000000000000000000000000000..4d1cfeaf6b0a8806ea52edae28a4ec491bf12360 GIT binary patch literal 3181 zcmeHJ?{6D57=E3lOLDa9R%n40hSznFws0q;@r71J)!0O*YbUK;rG0enoW$kM4z{nX z{9{NUZQuE$&|doz(yccVZIzHv73J=1zkXi(d4K-(_a83+;5&#KP$Tez(MgmuA){k< z!Xl%(_E)BP#B%nV!bu}UWVx{>N?4W@8M8`9ndn5Tdnzq5-heuR>wa&>WG{N$Ip&Ea zaCJ*aVYdlfX|Ej-sNYv9%C-p1k7XZdt#lJUAT#k(sku?v2~TOF@_|4-LPT=Cxf*QJ70nV>ZyYQn*%q+pu+9at@7Z-PD#w6E+#g%^16JmCW$s^{b5EOS%d7O>>D*`iKTLab*VVqhTuz_u= z3-AVf^IA(=x(jO96UJbDJj5o{z_)i5pCd{g s(QXa#X(fIQrOH#^uE1ZYz`p`_a8C_Z;V!-bLj1eJ^CfC(!#aHZ3YeSnIsgCw literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/EnumFromScopedModule.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/EnumFromScopedModule.class new file mode 100644 index 0000000000000000000000000000000000000000..57f1ed34b66688bedde227c42ff3c58e2c81e6f7 GIT binary patch literal 1341 zcmb_c-%k`V5T2d~$1Nuy3W`4~Pmq}1VDv?d!5Gjp2PSfm_}J^tamC$sX}c%*kC|wq z@BUH7>7ExLxd$J3=E>4+<+Q`jdN1zW*XDCL$MK z4Q)E55|7TiM2bw7nefIYnd&9my3BX1$@irxFx@q2nPCI!3>GS&Oz5NJL+==+XE1#z zvJy8K>|Lq5%`x&*n!Hq6`Bw~<*E;79*!NcHqs{jEA%prGlhO-Y4Cc=bwyiaG2Ig38 zc%UshlMOND(&UArP?gcVu%?$`?q2Yy*&QJFX9e;A5Qh-skOnS=*2eQ5@-alr+ny`O zl}?qV9Asy7)JKb25`LfZM(dN3&Qc!BOgP8;DnmEX$0&*`_mUzx4i6}V{49=;ua4P| zN9@Oe{kUR3K4(8B_E&jo(D4v-F1#FYPnp5ff+D?yXJs6;6<7KCfApvsE}Tw?n0v!T z#X-~@<6VteJ1;UNmFKQ3(2@kS^R|>EcOE!i8~H-!3^ABurxusLAmoCLf9+w9@?%TF)~=}7$W3QSQXa) zHtT+%9D``zlvd&n$%(L!Tu)ot!f^@tqP+KOO@3!+@>)i`#Ut=rS^at0H;=`8xQ{iaq*;t literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IDoublable$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IDoublable$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..6bc5c3c07386d33d63f4beef6662e392d19b1d6c GIT binary patch literal 1869 zcmc&#YflqF6una`+pd*j1z)I)h}tG*HyVtI5E8{#O%WqV;>YQBXa{#^nwe<@{+Nj- z`rV)6k1*cZr52Kgl1So*ea!5+XU?5-@9fXtU%vyuBdB?hBd}(46edi_aEJ9-Xw|l&dd-+MW4`bPK@0D++THUYPhcu#ikWPO z>&+b=SppNwLJGS=;BmDvatTL~fx|i?1&hT#vqH%=)#6LFEdu#feDk14pgiP%p|#Ql zI7f2H2dTMHai6znq>`>cr5H}TTA{?mJfVJZv%_hNM=|EtqFok!Vr@?62YP}m<-nyJ zq$vl(lmkq8p0*S>R4PjoW}^$IlEtU0lPF}(k;>C^lw5| zQAX`vm;1#5-x!#q8Ur~Y)9J$2`&?_$;$yU(K)y3G;kKh%)H(Kw+vDq)qrJ=B*wwM-fd@z}}9bpKpH%_$?mk3O@xlMbNZ?U+C%THHphm>Z@ z5I6h2C#^_$UG{|$DD0`LzqET$m){szwp4&C1b&^M&ju04?_pZ*V<7+4WK4cT^>oBv z3g=$=P_;P2(fPWJlr+LvF70c4TvRixQ4ek%IcGC7 zJ-AI^ZqTqtj&K*6ov$9;A@FbvXv87x!94>VX7I8L*PyZVfK34oMQ2LQ#%6NAez-tQcrS#p03s6btF2Xd%%^aXE;d8*| rVluYNBiJe<*z#}{V{&i}X7LGd9WNi(BX9%e@LM$<=YhgJEWq7A*X~B4 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IDoublable.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IDoublable.class new file mode 100644 index 0000000000000000000000000000000000000000..22b66a9cd1e9700dbbeec1b3b2039beff9c14deb GIT binary patch literal 1347 zcmb_cQBM;=5S~S#?O7=zXcW{HF)7B}J^3PpL{YH@!~l}`xZNAt#k<{RcUud8%tRA? z_eU9L@4&)~km$qoZl<%}d^_{q{QULxI{-X|hZPuO@WNS{Pz*%k%z^(bEG8ls z$A*GVsl=o6E|DUW{Y-dclT5Xf)=SfGXQG{91;!an7soT9JIQwY5T$2OU6q;A%C9lF z(p=tWFurb5%C0eJjIv)@Yit#+va$Sww&+YYz?4gq_Y@UVM)RIER3&%McvRc#B2Q6f zL^0((AwP)@^2JluamhLktmA@pJYpRa>qVX#bX*(HbKzx|d&0wEkNBR$voa1ni382} z^5{`592jybbSTkA{^vs8aKZgi52M;C-UVp^>VlL@BK_aA?EzY=QoMlMCFqA?=IFa7 zbrj4M!UAmmE(P#;(^jMrUPS(xrJ`>kqqOvgt7GAn&DA7 zhrbhypbFROFa-?;ldC5>ooj9e-btb3lFLd^Zex=wmu&We?9-47UD#1uTtv zPq!O66}W$HHIyBwzyk)4PE~ns)r6zFNKMVuaoOnlmU50Xu}9N(lMHB?(E0)xqxnt1 zB>5Hc9-l;`Z&3X>6McdDk0NK9enSqBT`wYGSv9Rqn*ILAUh_(^ryJDu?HdIVq#nxGply|Ha^58LDPna<) z-O*}=3PW2m=KDfoo%WT^3g@3_VC-x~9-kdrS*AKAFthhA;%SF0>Dq35+#(k|+W*<;vgs2+Y54Nh?xb zm2F`J%2{)+%X$XY__bc4mJ4u`z^@Uys~2(p&SfSa0{O3{#pHKXOGkV|xSCD$E#j(- z<*v#|Nh6Hq(!LQ~GaWTL1WHvYxz3!&jR$uLto`%Jidy=<^x)o^v$bnA5AG9K=r!q? zQ`?1h&r}Z{5O_KSG~nR%;1Pjm1LMyBCE#{!3S+Ptcd^Y3JOKii@TUWigFLp)IF3CW zJ;&J`KK*Y{_&Dui_@% literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IFriendly.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/IFriendly.class new file mode 100644 index 0000000000000000000000000000000000000000..14a594ab8e154d94c860dbeca3d2122a522593e8 GIT binary patch literal 1335 zcmb_cQBM;=5S|6fwPyuH&?u-YVp5E`d-6pH2_d32Rg55skK4O}F7E9%yW86G$4oTQ zcYl;|_6jt_L`d{u?{4O1zxj6N+xhwH>vsTn29F|`V6f$EmKH+l^jP#o>dc}4EG(v? z5GRJ5PRi7y^DfPV%6dw8V^byDX>-R))VUf)FvVc5+^vK@N_X4Gn0W@(jZ8@`{U(FS z#@Ydcscn;E1T_Y;S_ zxjK4W3mXPJ6FQ`5BR@ZoH(YQ(>|$Iy!@DFbKwT1YMWp{5w%bQ*Wsa9{y8`{t%mRJK znUKZHYed#2DZUqsQSHLk?E&&H=sjSkO zzC?{ykZ{)-RQf{o2z9ZkGozh!9<_fZ>A%f7Lk9Jxrr@%u=ptBV(E8_lzd9~Boo#GH z@ZiEc7}YU?hYTK{N%6vX30wD&DyihjsJitx(mB$>K6ThlGoT4VBMV@HnpS~nvLmvd zoOmRAqHsOC_Q09&BIOluE0X+S%h2k4pF!1eTNpnU0N}DmT280 O-wN4P$}tJ|f&T_5CY&z- literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/MyFirstStruct$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/MyFirstStruct$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..c8e67e531875dfc1961939a943d678c811c090c2 GIT binary patch literal 6362 zcmeHLU5^_z6usW=Zjx!rmW2Z4(`*+=pv-^-53p4ws9LmW!yqlOGsgE z6S&mtKP0evCy96qt`OKb1G}qKqS~-QuKe>rDz20Gh(|O`CR2f{7Kx-&l?-D((O*)p zb1>#K;$e(jBRXZ_kL-}stvP+)(f2KVKcnxT(f5)57L5|FsZ0!=FcXfcK|FpkMYaog zD)g;!eY;G*I=a`fe>kBblXi+Br%wo(gfePQr`+qz@st6GfeFdwnW2O=ZMKLZVwo*n{sZjZJ>EPY0rDs z(?w$rcl-D0NL4b33johDK{K{`G_tX9e`>=Fi;LEa(m^fR&CKXX@HlcID5sEO(YaxE zzf;MN=|a@)^?&|_POSC>N|{f%G+7)Ha?F*mfrt%J(k#Rv#mzX07XR*RZoYD1x#v9D zujG^xd3l{@kps+nsnPd@HqV908?lE6 zU3jqz9oQsrt(U7Zo%VKY;kdDfDZ1Oa2lhy| zSeWrF=OPg1SLs%@)315XHoQ*Y*9rx3NtDQ+F_n^z5*%+%UeD_M1@dzj)lUBH+Q_>l zE;%*I$*&FV4GDqWUQHg}X~Py-g9@ItapI!Rm|qAj&$GQwWnVWE*gDIr%ZoaLV?kYC z%2Y`J4Nq4VTWX|TGDZFjI0xxQHU|Okev+z?-xJw!zL;}cLIk?IQgW50?OeCu0|Iwz zIoJubp4@wXxNz_7PRbVCTxfNw!u1S<)_AdffVVmtJ_Wqi#vAz+{H(!x_SS+ney?Ir z2RwXU#$TV|D1zVKAJF|_^M&8w>R;K|m+-ls^$>U&-@9%UT!UBe7lBvdHGIwyR zTrWWQq!8f^c(V}UtpbEE3K8A`nnO5a@ooXapa9_#+`x6Oz&5;R*N<2P-iIDshmZ01 KI`;J8qyGT5u~0Yw literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/MyFirstStruct$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/MyFirstStruct$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..2fccf604bd34335a0b319638baf12c8bef25eb44 GIT binary patch literal 5561 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 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Number.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Number.class new file mode 100644 index 0000000000000000000000000000000000000000..04e3dc4e6d9817cc255b0baa3c8b93d6f8197f98 GIT binary patch literal 2330 zcmdT_ZBG+H5S}e9ZI3F5pePtud~22T5`!@jLNusYQzQ{2@#FSxX&3Ky>+ZG!e@vr^ ze)li%Cv|GE=5xXweCz*wRhG1>Ij8rwXu1cn!d6n2Tg zqjG(q%~xnR74~Z=DOe=-m=#K{s*o>KHVI^x@hcBS0;Bu(pKGmj0Y=Es=eJUGqoOVk zX`te^Kxn8=+gddu9-GJ1D{izn4S5h@Kp}0j;5}<{I@`xnO=GOO7^_K))%_T&7~?Dr z6*p8WOJin(7PV-P@3b+(L-uq~bqrP=%<9RldqtR$6A+bEkZs(iylbB31V>77IWKDA$29S!fkooY9X6* zbU9+iET&gxsX~RJ9U1a1A+e6OluioErJJTAN5Vab=&S-O>E&WAgSX7$oVF>&r}B?Y_h0> zI3~)K1CV=?1g76~q!lr*$*wR0#hg9z4|fPW=y%sc^X}N$l!r2b`GI-^=VUD@A6LYA zxJTe0CTx$x(yA~9yT}Ii2Lm?%gT?s`ki}mPhH;%T0G_FVc&`4ZH9Ejr7N!wF d24)g;9)4ZJ{dHWkxB%|s@{q-wa2xJIrNCg6h2*6W*HF>K~WSdA})$E#!F0ukPzZ!%>qV{#Gl>S!WL)SP1{|8H}VNg zG|~UQi9Uq!bcSVxtS*Tl{+LUf)34umZtd3}A3p=YL%8EXhCtEiD6BFe!%fy;p;7Dh z9n(ByRkovW(g+b+ZmbC-7Dx4%S*62Rl)~j2*USnfCtje<#7nKVwmrxa7)XF(CO5+6 z(k72Af$mu$g`FetC|_*5gM&zo!vb0g7K@z(d{LG8%+wlz>;nFI&_kfVh5tlrrE_qa zbiIEqH8(15@G^~5wI+}#a-%h^N-?jR$JFmxt#DfAQH=7+w8o;hY=hJBCZ8Zx95}^6 zqBv+N4p8wpEh}!QRF+nmjVjb49^a~=!hLu;3Y9A)y5Hj#Y|)5Gw?&E5JwaAc zM(uWu`#nv(|Iuu@!L=4;-hrEw*}>#!RURELmqAr-E2>Ognmpq+zhbqJ8`E?lX2#4e z)vG10=ccGIv@XkhT}aH0b)}PJaUrC8brZDeCXIauryQG%1s2B#bfl_|MTZYLIMWNK zppU?CzSt_}bkC&N`-|we)R(Ia>zBY_QDHT%F)iG9cQR`$!Vp+G(jGQLAh*Ho8jI_= z?@)f~7m6t*v>1I=msV7HK{kXD$Y|abZPId(kY8-ZY9wNPwkjWn?e5r^nSrn z2Kw>sYyh7DeD@~*KAeTYWbPacq1EuN)p`6j(cGF8?Lr&0v9@Rz;ZjGm(Kcw4ZP2oC h1sP;u46foAfa2pLdji+sI*h<{GS0#TOhO)R{RAV25Yqqv literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Operation.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/Operation.class new file mode 100644 index 0000000000000000000000000000000000000000..e27bae8ed1fd4f2356bbfc83a87f70e71d2bf8d8 GIT binary patch literal 1922 zcmd5-ZBG+H5S}fCYtIUZ;7c&NAZlyOU1BsQLP$uXSX0CZlK63Zx221ByLES43;)Pp zV4{hB_eU9L?|=rCpaBy8$#Kw!n_C`_4<;STGw(5SY3 z&omEN%Jvi<8X-c$vlvOkiS&|3qu0OK^^ie0VK2H!A7# zm_{n?3iJ*gqFt?82~W*q>X$b=oW?v#kW);%EPBhfIh{Z7C&+0Aj%JY242CoVq&ZJx z#SN9p(v;b#LoMR*K^GYw!P8OTf*3eAgFi?2%g$gxBPQJyElv*!Sw$JOyIt;=5Agm+ zwe>#NTEzSW-yF>oRL+*=+4g=0;oTELq$W(!*j2T+%PR)M~Jszx@e8`DZlhEJ=Rik+b?IJbWm@`3j7}IDwgJ zb6CvzomsI@G%;>@EH@d}FM+A1!fM=NS~z+CuxLBN5U4j#-MAJBl&s14-lS&iC=*lRLHqu4U+hFst;;K3wI} z^-vz8@o1kVJ+zxWzE`5wSgPWlgCA+XlNic|jFdFOST5}|fnYl7>=LLnBqC?o$&Ckd z1Wq5Vg<<9*)uG_Q!jbl$$J2w`1nwV{^pW4hnI7BrJ*X1+i(hCfk6L9-7=tCbiN$7$ zbASQDKMtS(MNGOels%Ll;AsI@|1*@{O!*(7@-@?$z}e{lj!B#=+1`f>Fa_>&y9m>G uGPAFB3D;4$jB^35WT!svuA)4P<2nw28#sKlp*ZGItA=t3Z@&q*;LZ;#B4yqH literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..892cd9266ce35ac1da71f389019d66e040a25cf0 GIT binary patch literal 7096 zcmeHMTW=gS6h6+SyV)j9no^(_s0jgfAzhzVsn8(6&H)VLZ*)t-R zEYyp46A^Z}s=)+-xfC;Ga@XH%KjncT(D*j)i{2(MzcCO%JRx^i3EcQPkw!#(UG51j z+9Cf;%GfZAukmU6%7M?0JN*Yq7&4T@cL(Upqv#KksLj=g#QOxU42^#`jzi8Qid?uO zq%dm)#+$821Samq9bSXW1ZD@b{amS7)!_=cbnzRhxQ@d;-l0Jp^#oFcQ>8r> zDQ!$`cRB6wAVgw2w8w()*e<6FM_hXu*Pi9tOS$$2Tzkm%0`0_HQ)Gcg%miI(5RV`9 zkkAo46?j&Yo}H%Wj^3EEFC5Sy<&?HLJzkKBDWm4F#~V{ecm-k>>e&)mk9wg9grPd= zafLdTIyL=R(afluEh;okWQXqvi3-`lC-|Qwp&6F;=>0?+`vj#ZlU9Qn@DQY%E*wcN zQt5vVCW{dc=2gPVvxrg6SpC>jFqn-ZL#C2%eOa)vE=wifr>8{eX6uI^X=Ke&pmp?swHZ%t4mu zy^v{rCu^NL#2iv+GVhljOk1cyIg$b5G{ye}NbNNU>hR zt3?LLk|uBUxB;3kgv3jVJVd}JqZ1UF^{Q@B@i;FfaXD7;n-w~zz3k_)#8 zZxqA5nFF_$3)h4euJLGn1G?VML0Hd07>6a~WDMQ~&vJuU1bkHIHTW3YbyUGJD&oVx E0Ws$+2mk;8 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..335e4a1bff39d54aed174db21e1728b01b74bfc7 GIT binary patch literal 6414 zcmeHM&2!sC6n`5+<)|TPLt7{bbO`}$C=y8vg(hUCboemi)Eyeiz;Id1n|O<~^6akC zqzqiSaA3G_;_qMvX5h{r#qd_Lv0ao%of=PDIM~w4Z-4vV?|ta)`j0<<`3(TxfK3Oc z2z;(p;73eI{}$V0zK(ayZKk--B6cUnhgt~VaBZ|7urNqMW@6=sqUGN(DhbS|!gQK4 zJZN@}h$Rd4%11b3<+_UZ4;+{#a3X~bncVf8ty?@W1deS8Dav1HN>L`Q2Q%Oy$a20Y zNpg`(A37MU148bW2(K|%el3Yw*4;-YMVZ7Y!ScIt9CD0^qZhMPWGGbfqc1BqHf5>g zx9K63vs(M=YZ}>b6d2t+;?kr=MaT|U!d4a5!YF3}Rvd0Rar-bJPjl0+$7|J$v)b5# z_`mJ%<{no{w9)B>F<2l{ipP6cZVc%)Zj}lcD3#5VWnkPY6);e)#!QxiaypglJjN?F zSt4v{?-g3x1%ALyHA|55^lHeo-pEFqIh}^>1=DhmB6&@+H)xWxx?B(^lQn#@s}<6m z<>db~AF&T8(asdo+{^n%j%ODt@Wd=U4s!%fR~wcpKi!UI>6>mR=Ns7mXK}X8aEC}> zp%LSL?;+Oeb({&OHROQ`JWJsF2aVRz*jl?gwz34kka+%~42g-oCq_d8X&fmlJr?aL z)o>tCG0Ha*d1knb_j$C0yEo!Q1^j(sOZd`Z z&6llF=#9Fx8+V}%ZnQrXTrm}N4sflylw7499@h@|1e#+m_o(Nf|8oEX=;Yw7)HBC{ ziz8>JSyVaj=E&2m3Oeu>fph&zIdGZ4T7gi`ajOFx1g_-HyO(2OotjbP=CU;nn>WDxWR5Kf~1>+I21BqD3S)7=|7w zyOaa{Z7%e4aITcHGzam!T*PH~;r^BVAs2cDUM!{TOF7E^n2T72+Wjm0Qx5bryn-&8 lf>+@@UIAXikBj~y;KA!~7T&?}9J+HAF5v$km*8z!{|oHb16lw8 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals.class b/packages/jsii-pacmak/test/expected.jsii-calc-lib/java/bin/src/main/java/software/amazon/jsii/tests/calculator/lib/StructWithOnlyOptionals.class new file mode 100644 index 0000000000000000000000000000000000000000..649a40e774bb4ffbdeac26993b91dfd3aa52ab79 GIT binary patch literal 4928 zcmeHL|8Ltw6n{6iI?2Mim33@vz^xQW#;~Cw1kthy_~~L_n;Z6Bba&3$ zA^t8Tkl=UzD8xJ4A?`?PBZWxY_`$vU{O*1Eyf1n0{`m8k-vHnSeC)vq0zIR{AYnoV z57~$XM(x^1O!I&x?6Ja4BSc`iu_g#v9Hud|N(Zs%2isPsp?x6ipeN&l-p~pqS!_Hw zN#Jb8D`s*p==C4+&=P2Dgt3sq-X!osr+c5k$=fR89yAFoPN?r_t#kuUlQXBkk(wJ7 zk9b5wl?(++MhSGNRX^s5`GmHbI|EK59>%C|M29T=f$ed+GB&}_P4JxwerAF{F~LU@ zR%oQSp;B3zFdGi2MSgsLi25Glr$gTX-Qpq3DBZ^+zwQ9 z6eHhoJ1(hfogB07%!2s&_IGc@wH6UNy)p(XNNVBuFT~9ty=JXa1p>9QdAeZO}LQqeqnw`gN$>s}$EA2(0bzR_HZaaB`T&K5VX3R$Zc5_On;d;TW+#|`fKG**O z8Lob%)&4^qTcBT^MBJZC$oLkU<7u#?K76~kD6jS7K zXUkz0WK(9I$LnscT-?GrAP=}5hNB{Zr7eYn-+iWqdoMQIdy@|9eFEn@-G8zp&@T01 zNL4B)}YPz$sY3cMspL6}zopq4Dif z>t|^Hj=Lw|EdF&gfX}&X$6XjL!As!Q^RSq$%WxrEUxtg>dI?_1*2{1O&otpxcx|ej z*Qdz2IF^IjUCkt}z#F(aEmm=T3m<^D@mWIsI=FicF2OsvzKiQexZlQ;KD>t(t-*(X E0WFm~;omS$cR5cC28eus54+uVXP!PY&vg3z=jX2g@CfdDP#~~qbQGpc$Z(T&S!mRT z{lGL2S;}@4E*c?1%Z)W*#FD6!FspQ!h(@^1k`A9*!v9mRwc6VDph#di14)={hAWLt z9$5l|b3zI`PvCL2zAw6i$c@7qS_+nk9cG1+%PQuxGwTG33;5+hnZQsV|GCymm*6ZJ z`1n?8ZdB6cF^yE(7Dy7^X3=WU(mz~2FjhJ*>G&ubokX4jX zyWQq~xrcWW%^d#&csU7DZd)p*F3$@rNvf+>3)#F!7ZPU7Tt1thp~BFPjQNI;nB5Jf zvvj*8(5&k6bRDqW(HXtu_Af%OI%$LJVCJi%lJV<3iDpYMPTV2O^oojcud0rY z_zU6G^0N$P?GQz-$w)~fjOEfU3a*)sTH6FFH7U8yS^zg5+#vAuzjVZH`<3Xytv%OL zuAT?C2|VbX$UT>xbN%Oa%WQ`5?Q8&_VSHDzZyzqeNVawnM$vC<*Xk0EJv8T&qg~zyZF(QH iB3wbA0$ha&909K3DtusE6XN8jXpdMu{(&LyRDaAA7rnEAF;u+dF~3rO`wa z{qB!4PP-zaXM_NWAKL9S?KAVtTled?kDmeH23!rGgTQU0lQ?HW#w)DFVxyMq8>V^8 za<;B;(+Ck;ZmfwDmL<)MS*7Dl)Z#^!HF*Ff0{#AG#^iE5S6ktUCD1)3q_B4g+^kgF zLOwy<;&42JCk4yII=iW@4G zr8%=nom#}>s|{qh1y3iDb717mjJA&+_P7hHG-1-IsB!v}kX4jXyVl@g&j#NAc+A=V z54&6la&GG?rOwaOEXykMRtvd2L8mij%v2%W8K=U~rcC*gkm%hdrMJ=Pn&s->pe1PZ^Jj&;#!N8|3_YkTqTb^(`t2XI}r+@3D^Z@~mc zo;RfxIiHa&VFYH(J=bCV`+x~^(nokT_HEa1#*etIi`#7NsW`!}>?-#I>o6;FTm*MXR z;9SBs(2a6{(sh(O@Ed-D^2>qn1N44DsRR0Oc4q)bKhC{=9l~K4@OwvK@D~Jku0R-S zgV5g=VHl3JML6CDVYm%K7mT3R4mb&?oOWED#xKQj76-r>ju17R!*Kz1UGZ`WDsT}d GAo>oI`1h9p literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii index 97e7a8e8a5..f67548d7a0 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii @@ -2240,6 +2240,100 @@ } ] }, + "jsii-calc.NullShouldBeTreatedAsUndefined": { + "assembly": "jsii-calc", + "docs": { + "comment": "jsii#282, aws-cdk#157: null should be treated as \"undefined\"" + }, + "fqn": "jsii-calc.NullShouldBeTreatedAsUndefined", + "initializer": { + "initializer": true, + "parameters": [ + { + "name": "_param1", + "type": { + "primitive": "string" + } + }, + { + "name": "optional", + "type": { + "optional": true, + "primitive": "any" + } + } + ] + }, + "kind": "class", + "methods": [ + { + "name": "giveMeUndefined", + "parameters": [ + { + "name": "value", + "type": { + "optional": true, + "primitive": "any" + } + } + ] + }, + { + "name": "giveMeUndefinedInsideAnObject", + "parameters": [ + { + "name": "input", + "type": { + "fqn": "jsii-calc.NullShouldBeTreatedAsUndefinedData" + } + } + ] + }, + { + "name": "verifyPropertyIsUndefined" + } + ], + "name": "NullShouldBeTreatedAsUndefined", + "properties": [ + { + "name": "changeMeToUndefined", + "type": { + "optional": true, + "primitive": "string" + } + } + ] + }, + "jsii-calc.NullShouldBeTreatedAsUndefinedData": { + "assembly": "jsii-calc", + "datatype": true, + "fqn": "jsii-calc.NullShouldBeTreatedAsUndefinedData", + "kind": "interface", + "name": "NullShouldBeTreatedAsUndefinedData", + "properties": [ + { + "abstract": true, + "name": "arrayWithThreeElementsAndUndefinedAsSecondArgument", + "type": { + "collection": { + "elementtype": { + "optional": true, + "primitive": "any" + }, + "kind": "array" + } + } + }, + { + "abstract": true, + "name": "thisShouldBeUndefined", + "type": { + "optional": true, + "primitive": "any" + } + } + ] + }, "jsii-calc.NumberGenerator": { "assembly": "jsii-calc", "docs": { @@ -3412,5 +3506,5 @@ } }, "version": "0.7.8", - "fingerprint": "Xn7Rk17rqR3AaMx3+ssxT0GR1sCWwz0OGC+C8QuLI3A=" + "fingerprint": "pk8FZVsu/yw+n0kGFMHn2Oan1rI1PjQQsUqnp+yB3js=" } diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/INullShouldBeTreatedAsUndefinedData.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/INullShouldBeTreatedAsUndefinedData.cs new file mode 100644 index 0000000000..121308d6eb --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/INullShouldBeTreatedAsUndefinedData.cs @@ -0,0 +1,22 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiInterface(typeof(INullShouldBeTreatedAsUndefinedData), "jsii-calc.NullShouldBeTreatedAsUndefinedData")] + public interface INullShouldBeTreatedAsUndefinedData + { + [JsiiProperty("arrayWithThreeElementsAndUndefinedAsSecondArgument", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"any\",\"optional\":true}}}")] + object[] ArrayWithThreeElementsAndUndefinedAsSecondArgument + { + get; + set; + } + + [JsiiProperty("thisShouldBeUndefined", "{\"primitive\":\"any\",\"optional\":true}")] + object ThisShouldBeUndefined + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefined.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefined.cs new file mode 100644 index 0000000000..59078293ae --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefined.cs @@ -0,0 +1,46 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + /// jsii#282, aws-cdk#157: null should be treated as "undefined" + [JsiiClass(typeof(NullShouldBeTreatedAsUndefined), "jsii-calc.NullShouldBeTreatedAsUndefined", "[{\"name\":\"_param1\",\"type\":{\"primitive\":\"string\"}},{\"name\":\"optional\",\"type\":{\"primitive\":\"any\",\"optional\":true}}]")] + public class NullShouldBeTreatedAsUndefined : DeputyBase + { + public NullShouldBeTreatedAsUndefined(string _param1, object optional): base(new DeputyProps(new object[]{_param1, optional})) + { + } + + protected NullShouldBeTreatedAsUndefined(ByRefValue reference): base(reference) + { + } + + protected NullShouldBeTreatedAsUndefined(DeputyProps props): base(props) + { + } + + [JsiiProperty("changeMeToUndefined", "{\"primitive\":\"string\",\"optional\":true}")] + public virtual string ChangeMeToUndefined + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + + [JsiiMethod("giveMeUndefined", null, "[{\"name\":\"value\",\"type\":{\"primitive\":\"any\",\"optional\":true}}]")] + public virtual void GiveMeUndefined(object value) + { + InvokeInstanceVoidMethod(new object[]{value}); + } + + [JsiiMethod("giveMeUndefinedInsideAnObject", null, "[{\"name\":\"input\",\"type\":{\"fqn\":\"jsii-calc.NullShouldBeTreatedAsUndefinedData\"}}]")] + public virtual void GiveMeUndefinedInsideAnObject(INullShouldBeTreatedAsUndefinedData input) + { + InvokeInstanceVoidMethod(new object[]{input}); + } + + [JsiiMethod("verifyPropertyIsUndefined", null, "[]")] + public virtual void VerifyPropertyIsUndefined() + { + InvokeInstanceVoidMethod(new object[]{}); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedData.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedData.cs new file mode 100644 index 0000000000..eece17b09e --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedData.cs @@ -0,0 +1,21 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + public class NullShouldBeTreatedAsUndefinedData : DeputyBase, INullShouldBeTreatedAsUndefinedData + { + [JsiiProperty("arrayWithThreeElementsAndUndefinedAsSecondArgument", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"any\",\"optional\":true}}}", true)] + public object[] ArrayWithThreeElementsAndUndefinedAsSecondArgument + { + get; + set; + } + + [JsiiProperty("thisShouldBeUndefined", "{\"primitive\":\"any\",\"optional\":true}", true)] + public object ThisShouldBeUndefined + { + get; + set; + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedDataProxy.cs b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedDataProxy.cs new file mode 100644 index 0000000000..210a9e6577 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/Amazon/JSII/Tests/CalculatorNamespace/NullShouldBeTreatedAsUndefinedDataProxy.cs @@ -0,0 +1,26 @@ +using Amazon.JSII.Runtime.Deputy; + +namespace Amazon.JSII.Tests.CalculatorNamespace +{ + [JsiiTypeProxy(typeof(INullShouldBeTreatedAsUndefinedData), "jsii-calc.NullShouldBeTreatedAsUndefinedData")] + internal sealed class NullShouldBeTreatedAsUndefinedDataProxy : DeputyBase, INullShouldBeTreatedAsUndefinedData + { + private NullShouldBeTreatedAsUndefinedDataProxy(ByRefValue reference): base(reference) + { + } + + [JsiiProperty("arrayWithThreeElementsAndUndefinedAsSecondArgument", "{\"collection\":{\"kind\":\"array\",\"elementtype\":{\"primitive\":\"any\",\"optional\":true}}}")] + public object[] ArrayWithThreeElementsAndUndefinedAsSecondArgument + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + + [JsiiProperty("thisShouldBeUndefined", "{\"primitive\":\"any\",\"optional\":true}")] + public object ThisShouldBeUndefined + { + get => GetInstanceProperty(); + set => SetInstanceProperty(value); + } + } +} \ No newline at end of file diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/$Module.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/$Module.class new file mode 100644 index 0000000000000000000000000000000000000000..816e89b453b9869d4ed583f75d9a1c6993547b6d GIT binary patch literal 7799 zcmeHMZI2r@5FV##lWecOa;4>^P|VSnTw8X91YgK;5-P2@YTJt5wGt9ve7jEKvTFz1 zd-V8YNFc#?eiUNtO`5xQOQLe{0a;OY*Y@}sd&ZufXZ^>Yzx)OOpFz@r7J-4$SyD0~ zlc#K-B}NVHk4*D~mFy>ll}3ofa$`-Bu_CJqW|dB^+*f&3@D8*Iob&w(CP&G`y{A00 z1Ws)VDeM-36a9@R1lqS%j{qS}Wa!)8y)Xc+JgzF4j^{Q;#wKan3T%WJx*sJG2OOQ7%F5gG>)e@z@{PBTxO_Ys8xyO zA1Z9iX`B_z7&;UMH;r0u`}X5jl5^DS^iNp!JsWYlKC^pV+dX!6kGTBM9>LOC>^vHKV=aeVPhON0rEP8G%8H`Fy00hr!XO%P@8Oi|b=A;J zt)k2?fvERzpKC30zCbJ$#x4+fm3I$oTY6Y-jh5VwRZf|4%KILEbGli!ZqcLV4Yx=u zne(BLZec3z{ppwav`^HV8E(NumK0mka?6-y$7&%*3x?%^9w>WP;XLm=%lO3a?3cIG zVS_I@mmuZ>=Ams73=#|yc9sjD#~n7q&I&s#?5wb}o>PqQ+I@j@{d)#^ofI;HE}U6` zlW>;6g?>6GopsVWaHMoK#jN{5Rqk=U%aCUhSW6XBttU(iSDse3?N}HBU!?zlCJ#{C zh}*CDgk!cZGr9n=W=Jp*ftz?}>DW#OK0b25Str4$;l3~ik3V+tW21pj08cvcNEPsk zm~aZO9V~t7%K*`@(EWBT`WaS!$J!RG;?>Cj{?Flc#Xm>z2CVtI^YAA2ynxRwxCn3I z-ATWV_m@%MX+S;GfZB#j@E)|`eMD&^+T|%eZNzV(R6Xhs8}Qc}@K3-;*rx?o;40n$ QV*EP>ehoGC;Rf9L3ksNJK>z>% literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClass$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClass$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..b22dc2dbf7950f94529f7d623ccc0b5ea32fd148 GIT binary patch literal 3198 zcmdT`TTc@~6h4E6mK6cHD2nKa2(6N?@e&guB!r086flA$K2En&I=DO2%uEsZVHLK zZ1TVo=$aK$*f|0Z)A^=~%ZgZ5lA?;0v7oAYv6| z)b3Qc*Imat#bS=;5$d0ei1TyAZCMqmbLIjI!}O}vLT*gcIAUj)t5JdLxeOJCR%MZw zghV%%l#c!CEKc`@c+E#gD8I7BwH8HwgjgFK4-k05?E(F3Y))AJlMS)|*c#bJ!8+}Z z{dZK_2;<|6v~-K-K?=_GKqvGP7*6NiFZ{UG)KVgD6@7V3=UR%dF|7Us2J#AP`8w0W zt@kz)wk!;R!-u$r?S9t=H%_8Bj zwNo%g;PYQK;qh~T{?z?jptMdCjGR?f)d61=as1b97`MN8I>GeG$v{aXjOEfk6d@0Q$xGh1Z}J-+NEQnjWc{onI^Ohd*WF#a z34aWUR^@wtM!)o5AZGV+7zd}ZN>qrVwQtWe&(1S5J2Uy~#j`&F;5+!f0%HVLjgF&? z2^sCO9*c}>+25Gv5zE*Ug)fZ|k>$pkC}wHgO_^0XT5TGuS!~x*W=sW21g5=q%H&S8 z(cI;+B`|(VNMUaixLIoqg?)h7xo}iRNx@R_gju2Fx=Q%U(l&w88a`EElE73S|E|_b zPrw;c{^zmO+^Dq26B?_mBhWfjryZ@DDbLIgG??6KbDHotMNSFru=p3Y!|Bz+o-n5w zI+~%U8TM&jrHSH(N@Z!rY}}?6vG`sG*$rUnICKsSor&RS$ibu&-lH*-4!+6hD3K03%RpQeVX2S*v*<;-(I4^(5_5) zOGpf3OKBfh=W#la*LjSNF@B@RwH66KMr;I*hX~x~_K^KKn-jMGWK--t_D1Nc&B9Mw z?d_lTz`i>wBc$!nQwhCo9N8o&|;f{!WtI4l~ZxvGwyw3R*-(pz(3CuPW z*79wph1(yzEZMd&1lAgF-S$=poMQ)laNQRk0*k|pd(&P5Gg8T-*c8fhwWZfYb1Ewn zaDl)dBlNiu{C=py{7)s4z}ybEc=0;-w94wza@}Gv#%GZ4K`05#Kk7;=GG3QGVFX5Q z)wM|9*fDTHqo^_Hn#%Fz*#wo4QNP1Isb(Dmbr~yZgt1)O9|eNxxV=xHT9=6I zPvg#2|H?3q z`wH%E;M+0$4t|G;pJ#)oP<@WOF_^+nCj+>q@w4im1DJtXgdp%C%=zEW!$+?nIr$vv z;~_}ZH<3{H6ZjO*n@3G|-bMT_?CPUk8iF=G1g#98q5c?9j~C$672JQ0YY`W~7q|jE YrH1QExPbq=IA&$|3ciL2zJ=>A0gu-lY5)KL literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassBase$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassBase$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..8754aab8620c8f69a24732bdc26a87e722b64bd9 GIT binary patch literal 2060 zcmds2ZBG+H5S}fSwr3UOO%z{NL@kNAGX`TKgaip{O%Vb};>YdX(k|ZZHoMyj{4o)E7rEaWdpRB2oZm3k2Cd`ISY7vVcv@p6;SUU8bp1z~#pAXq9IpYHwGU?#!oSpOwzyZyu>M6e$A17XCw;n~22~1Sx z&oU-3v(=VXB)lp+!U!a|;>s#*2FTB=Wf@#7!Zd-O=V%+5$N!OY)L>h+b;w@{m&~b5 z*pqgi_Aa~+RT(O2gt1)OH-c-X!zRjJu1d*uYRydn?hshJkdz~@-sLU8y;F0fdmjsM zpTN_spifOH=laL_QGf?HdHVVdo^BZNx-bS?)ebfx15bd!5YAA59OSWdhH+iM)dKG3 z@auhr;)gNsGnBulHY50UHh|A4zRT&q2iIUM-5ZAq^qV}kn!;~}=6t$n*ZZJN^+C(S h4fM&uO_;$iz%6_{JdeO_xC_(p5Z6WINnsY|egkd|j@keK literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassBase.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassBase.class new file mode 100644 index 0000000000000000000000000000000000000000..dd0add7fea7e6cee32f6e44b42e46c1cb2588047 GIT binary patch literal 2050 zcmd5-ZBJ7%6h0k;ZPzKtn=g=15p`3un;49V5E3MaGed|Vi66UryRCR{JKJs!{+Nj- z^4%Y0JiT*F0%rR_f**QsPjmY8oagjB{rT(L4*+-$Pco1quxWJQ$4p57khPg_RLy>2 zn)@tf#|jsX5WeNc8b4rB(2AH<+F!34t65+-B4*4hW_SkD1SS%Mh{?LYQ$6H?B`~%s zq_ArQUKA=9Lcc})uCrf8Pr)K_%&bsyTZMe3ct9Y%fwK(c2#ojfH?>we3)jfV@&~E8 zQBj+RG*EFm)mb}8uB2*yh7S!!6#Pdbg>stsheuarCLf-E%j4f zq@m)5N@Z!xY|x+xg1yVhEf3PW2mW&WZ`-qM&Sm5nL@=y?I(TPtwz#!;}xvL zyH;G~dY@q{5tytfY>We@g|q)GrfowQ0$Y_!(UBDbQ*~~86~}~{T-zf8(}m*sFtadA z;A98^xT>-YQwsv#o@(iUzZQ<<*2LpHJB7 z_=%Pzi~bguTr-p@Bz3gSq86gh{ac06Yb;h_%LOq~`z-Nhlx3i#5yo<9-v|WLK?7@% zFH1yD;^QU*iv)HrrT9zzON^xSjSM_E^SE>`X$BqP0m3NU!aXUt4R_pLoZZF$JdOn%02GIZC%Cxpqt|1! Lvl#0VJcPn;lZb}$ literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassReturner.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AbstractClassReturner.class new file mode 100644 index 0000000000000000000000000000000000000000..f9ba4b8e2e68d598ebc24edd79a6f21b4319caad GIT binary patch literal 3202 zcmdT`TTc@~6g~rmg^GZ97cV2mq(bXoWArB(7Eu<|LJYx+`XHtF2U31IM z+;U=WdCS}x8Y*t6RF=lf22E-ai?6rPx*jYYl$|5XPQ`LQ?w>Q`4!8Z> zev=u#b2=Ac1a^%zQofwI{KT<=D+^*x-bF<34F*walb7iQ=OB7+POF)n|FP* zSpfu=ayx1B(vQmqT{lhO)1P!*4y|_5p~o8Bc9|@V;cczrM_RSGwi^T%a=SOZpX7k6 zXLRNX0v~tGnSYg12ozUTTL=8Ma9nYu$NIE2B#oWG^m1ET5%Y@d2qTbNZn)l^OdLoh zM-x6;_mhU69Qt=SPDcz`9l2qs!=g5RVLF=%+$e-n!?6n6PLaX-bBQEZk%5v%7>mu} zu0SvyG&ejrL*PVO^gRRH)SoQZHG17Ru?;V2x-L^z&- na3BMr02D1BK<~~t58&G={5_4UgbQFEm+RKEa2C#k4;Q}z0Z#e^ literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Add.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Add.class new file mode 100644 index 0000000000000000000000000000000000000000..16d02536d3d71cfc1fa7487e0c2ea46f2ada5455 GIT binary patch literal 2721 zcmeHJTTc`*6h2)RW*JcwK}Eb&5_MN`MvcTM#6*b~%qoc@iI3fx!WL)Rwe7CJA2ZQJ z-~9#pS9~y@&bR_H0vc}*X49Ez_w?&Ir(eIGcb{Ip0f0%krf|>*5n67n2_u$7?SxsS!<%vJL7Bk*Y)-=DQaIOG=8+}PH!Y;FHxRg5 zF9f@fh`Dh%i^YH>G}9XYHn20;W3R= z+7jp!PNyxc8VOI$b?W!eH#v=Ylwc$=ZL#PXTjF%Q>rape7r5YpEVy7jxN#aQZm3k2 zrp!i7Y7vXCv@p6&SUL(^+5+cdusdYG-x;sah)Dw*Jf?a~-a=hrz}^Aqg?$7@ zs`Yhs$P<&P$6y_kk}o;$xI0!mHJU#-$)!Npm35-2zODj@7D?7pn4Em-Mm`oNiM!(+O?5PTj68NwS z0qxG%fwKP?t1(wg+-9l%Hdi?#FagI2y#JdC_?_ni_xiDF>xkbGj`$T6gY14Ha4e(E zN|@a|88O1UTyo9uQbQ{Db{svCNW}zocQ#t}r7CVa;GV_j5>Mc)jFdFOST5~7fnYjn zu6l5GQ(=%N-h&z$bjW`R18=ccfMp+84qY)7Ho1JY#vy&ysmX-$} zeDJ|P!WSQW@xd3xqvz<0FZxG$ypwFqY&+ScC2-o~!)|x8lP~xC?wvdL&h+npe*GN) z&cd1oT?EEF*EH(X;>LZtN)6Ac`46ef3|gm;9K7gRmfH3=po(!wFa_l!*b2C(5@^@ zEN4S5_K3l2x=Fc!uQ2^TBEF+j-A7@IJrUNf9JWebi=rDk(&+f3{?w!p;wwZAy|R@b zWD`ZC)tSHSRCN(fSD9bB<+~PNI;mf>sppN&HR~1Tjt}dWr#E?()hv#2RCC-Qu!PI? zXigfAu46vEkUGwCi%`OW%A(@7HS#8KS9|oMrZ;`CO!%G$`+(X_AV;x zWL_Dl=QAYZG|MN(x1oo7~E=G}I)i4`$h6HK}n<1OFS3;{r z!7)0l-aqMdO95UW@K=WYk&N-1@34e8PRxBp0tc6vFT}XvIt}Lf>xgW^iDH{iJQpQ|sA6{n|xI+T-4oqh+gbNh-j* z1SE&u8vh-NxO2a|MSORqE4<#j6I#rm(f4FZx4_`?Cao z$zX1J1DKjv^KVN-$F+-ay0lddgwx(9a5onflKpi6CtkR=#2!0<^LFF4wo<3H0E&q# z?hk8-`2P0QvQ-xq;G<`^T87WeakUhZY@|7W)E79O1SK&KLkpvMlECH8eiUa&2~LvA z1UvvkJ2pHMLo3Q;)?vR- zBrw52RDuh9g*y+WNESuYri;Z}PSZ8n6-%@<`=d1`IFTf9bhC4=GR|DAbE?>+>|G5@ z=^=Hric?w~wXg0}n*x1L?E%Mnbc&k}_wZk;IxDg+i*sKFs(#5 z2j?Y(*oOBM2y;q=3tNb&J4%F67*pDy^2I$R!Ur%eA;da-s9;f1B1}M^gb?eXvZ1C# zxCoadgxH453L73N5w0ZIphEaE0YR;#3gN2+gsT#ZSchv07GEbIOlL;;Mv3q-D%k}y zm>)$poyEUVu838gQ`qyZ672?jf@n7d3fTY`(^J8Hr-Zu&^V>4+dnMWeEN;)ZACz#P zZd17*m1v)BSGk`QaNTelUC;%00>>8d)93j8F226N7r;Y&9l<4&f(Z;4*d?%F1?u3y I1Mr~vFELBD_y7O^ literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AllTypesEnum.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AllTypesEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..42b14188bdbb360ede8c818ba7b3b1e8fa055526 GIT binary patch literal 1335 zcmb_c-%k`V5S|{#9k(1m6_jAK@C1q3jfuX9F`z*_b7&$b36H&Qk1KZDrR|=a|Cos; z`tBcPobGYqNO&-jhwg0Kuitd$o9XXA-+uzYGuW&{g}|<}Jjs~U$r&54#F?J|!mLPG z#=aU{bW$c>IPVh96fYF>#wL48b%wcc`?|>LP$jTf9#%}BCLg+If_nn9hr_Ua%v2!= zylVfipB(~oC#J9yq_dsAbS-ya1w)6m7g9_AlECU#`|3JJ-b#JC)7m~JP%fk-JgSuQbHX*A8P=_--A=QL_``ht24od$w91RRG8QO>kB zo^}NtQ^d68sdQB8R9ei48sb(@SfM%c_pHfqeqP{SN@K2=bF?Rwa5wrGMRDt1Qh|=c z1#-qevr|Dg$NI-3{o|m2TAy)+BODC@XUy|H^_UfLkzk8XpScC+Y z+XjU=W>$vzes@Q$ggHbE5x5w$f_DHpF literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AllowedMethodNames.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AllowedMethodNames.class new file mode 100644 index 0000000000000000000000000000000000000000..8a39404c1d7d01cf6e6096b19d712c4d10dbf452 GIT binary patch literal 3610 zcmdT{T~8B16ukp&x2-6G;uk6-8U#POiW(C&CTc`5MH595AE&!RJGwhlccukR{9Ps* z_1zz3yt7+miMvt~LdwJLcBgmGo^$T)o!ei(zy1J#J8;K=Ap#3J^4yRK>AquK=4!QO z)>*_|7P3zY7qt+s;o4}|V}aKRm{F1YCyH94K$kqkFvB4YEW75JmIQ=WcD9Wh$ z*yh#BCf0!r>#|5NOv8U=BtGn*&sw!Z$f^=p0{=BL2PK!metbbw$^8k?sLEtO{i~JOV{HLSSOHZUwpV2JqTMLN?GSgh~Oj&z^E@T}cGN=u*$7O&>PRC( zz9hRs3+z*m>{u2Llh~Hd#u?sl1s#N+%%5^GsuU`}V_6KZ zeUR8Nm!zkp7TR!W76pPuUhAU+R|$;Sl1(~kubv#ZzHP!z3eN#|+iLO?bl@g|sm;l8 z+bq8|Z#!^{!2AwD8ACaNk!7JZcJ~z=P&Hft)Pw&h07_86ouGvG4&L3y)gioAzd`x! zc=Zd6{KUH<7>y$do{>48NAQYKFb3oCS`m(=5aRE4iEtbyQV5n?!r?>)ha;IBPQmFE z!j_6N83+@Z2xsA33Zd|q!}$z^)0qf#7b<85LIE>l{ho%4_U-uT5?*KUn8U;7$9i9c MD{u{Ja0BN507V5<761SM literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AsyncVirtualMethods.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/AsyncVirtualMethods.class new file mode 100644 index 0000000000000000000000000000000000000000..6b929a87250da8438778fa4af2d52f3696812c38 GIT binary patch literal 3442 zcmeHJZBNud5T1pDJ1PRA_=d`gZ-?MjiN-{XiNQC_p+=Czk4w97tL^T&yFI~w;jb~# zsEJ=p{87f)7Q7?r>0wYb@k86~-rUo9=9!tDFJIq&0DvnnU4$+Ica0AGm}Po(BXMGYR(K*e=|KH}eLU907Y$L1RK`W9=PhCGOnSxDebFtDHve)N~*J!|`gJ0(KI}xiW zqjtT{y}nJXf6}bMv|uR14{2m^_z6EJVVvd~bvmUfILo4_ykNDEt5b9~V#Zv5ki^Se z-_;r)E>DcxM+R`v~y;3|V z!QOu8fdK*|<*JK=pB@TXsisYRu!@D573-pF5Cn#+3cK#oM#I?HEZCYb1m>zcbWF_< z=q|fMr5C@2XBUA3<%t##GmmCUaEQR?4i1(MG~RVN2oy82(**Wst6M6;m_O1g76xN5 z5GrXOHn`Rzb4Eqk!Q9D2gvDqPB{6#)u|DNR;@3sXzot{A9M*rCq%4HoMzO`C}%U z=y(5&{sQCN9ko(xS_}k@X|8v>nS1VeW@cyR^SAdO0bm9^2l@ys86Ef)CZxZ~>dZH4 z!@gyj`>evY6>b_Ke9MhBe!#+@7BZ`}|4>M#8_QL$nH5S-JwvOh6|J@!4x|VS$50`Y zC4afF$pcGZU`|M3=Ly`)<~x2Pf=G=0MYI$w6x%WQb5-QCxpe}m1$=TKLtvaJx_r3DD75i=!fhM9br#n6-q`i{=^oAgeug~?Ik2Sq zHE2tkt^pE9@cbOp9o}vzfAGVF;|`_qX@X5=fW0jY|uG(QNJ~k_joan0Qf>R#f<+tP3NM z(}Sq##H|u3x%p-W&Zc3Uz?UAHYV(aQm2>Y^{SXcyf&MZNL)GrSofxO#9D%Qg>661a z$Cy@DB_6;GSyeS1@W&#`?$Ndu8c#iVJQii3q!Gq)X`c$55_M2+5ExvPlIyrXbK}5e z0t@?a0+3Uy$~tg$*Zi5}y#v`@yNMVFt`oT3Y%{wi-U#rw)2IW}1ZFzE*KJZpA3PVv z;GD9C6NrIZK;Q^Y;{YlA^}_(J9bDbP-9Eg#A0Yi|#C->YpK#R&L--%r0A9oRKNvr| zZ~{i+y^}DCR%1I>r|{lHi{44lPIo}_I-;F{vt7|9I-uR{h<5%D(dIj#rQibU>4S?v c@eXhaFBg45U=pTa9B#(z6kLI8kb@iF0T8(v!vFvP literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/BinaryOperation.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/BinaryOperation.class new file mode 100644 index 0000000000000000000000000000000000000000..7b234bc98d8fea37d899acf9de43e8bdb2fa766d GIT binary patch literal 3442 zcmd^CZBHCG5FXPz7Ph2N3MnmV;~?4|3E9m{QKS+@N)e=2T|xyEsh=v}uHj5}?ThWZ za{RGMt(1Q0r~Z%rjVR;Y9LLMGw@9E6MJMmt*7(_(XT~#g|GfI+B>*hJk_STsR*a6q zlnEK`u{H~h+OfYe%|n*51BIJLh|qFlO&GBxY9-7n9eyt))1CDu*USnfJtz^F$j&EB z?uP62Jsw#C!w-cN_7Q;xm0Dlm9}ztl4y!0BSRxKG#HT9e%M05CN-H??V3fdk4}Vo_ zrAOdHGW_e$Qgfq{Hjinf(xyQDP$AmXs-E!Fd`JD!tp=wtj}o*hrcD+-XSH z)oG_aYo&Fr&*HVfrM3B=wA$|!3a<+@=3H*bdu@#mBXDI5%J30^=}N6vg7Qq0m8kI= zW|=%nwis3&0+Tg`HDsG<;nr_9OST~lfz{eM6x?M3+(*{BspkJ%okY~b zEN>%I*9iPwfT=F<0H)qvGR}$Ea76f# z9#jZCJBRx+-^<8oa&O_mtz(UAeycsWP2gVFi^syl9sSRS)q@ZttM9o}9kdIp>Y5f@ z#!1J6yJtFhr18E_pkU8_7|2NSQ(+9YOzPeH&M2i7+g1(-qJ94BSC L35yWG9k}-zGT%sa literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Calculator.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Calculator.class new file mode 100644 index 0000000000000000000000000000000000000000..6d7aadb8329afe67f31e5490f0d60cc8cdd3d843 GIT binary patch literal 7357 zcmdT|OII946u!l)XF4QA1YbncVvK`{(=h>~fH4FyAr242!^DlJ=q{jQPxn~eGeFL9 z=gzGw|A`)3o>9_^ibVYeRaQkZ&iJD|M=(E-vM9@zOtZ$ zz^zz#ZjtiPeM~FVjidEsiwfq_B7G9!$Cz_BVQ~_>9u2&5K$A$g(|b(|x(J+CLjxLa zxC?8KnU@ggndBi)ZV|YdD`+wABXG5|JBvLz4fqq9@F<*%d^Rz%N}y{RTNY#q^wsfa zgos22&Jg?0l~Axa3M$NZyr@{>Xc`W8N+MbdSTP=V?CkO;bA09nNXU0e)cb~RFlV@C zPrk}AFFEEF$9$dRu;WK8cETueiZt;yodmJib_v<-!xCOzdM__c%$p(GS=o8p@n|UF z*O;?MB#9jABs(Q$XKPr`W4F_^zd{A47|}yLQgx}uRfmppl)Im8f+|KeWUCR!Ts$43)Zq@;Um#Nn}14t=)HLtGf^ zkx(l|I>f1O6L$9azBzHG1|Cj##(cTB#)Ppu4CY*@Fd?|lH0jdl62pC>iNRf#G)I#L zWoB%@;j9KU4UtmqFYq`qHs8RmQ|r<$2h7n@JNdWEtksjqD?{U2#L(;jZZWuV?WHDV z`*#ItRho1#u)Iw$sSc=0ymscLiRDK~k2GJNI+P6=INJ-|aE`!Wt{~~UN?KPBUnPzE z3V7I7b8A^@BLe+}2(|0#u2$Op*p+PZn85AAvuXSZ0^==I{2@1kMG=)^W$mR0U{W0Vm49 zYXp8WxD^;IkK?PA)=CboFO~!R4cSHp-XQR!fvrso?BrD#+Ehd9;@i){*@ z*>)l~eZxI}t{f!16znKjbIo+rVzkAC8e%U+W#O^UxRh*t_40_S9ul~4PyyX#Arll! zj(Ey+SL9Vn3Z)vceJ7NxsA8|4V&s=4e&_nPc%Ti=hF%oLcsXWaa*rdJ@HTfWxWBJ# zTRmAVC=j^b61-)()`EEgBieBX1R{pnf<*#jX5H&PQhL&Y2L$%Yto!I6n5h;l3zi97 zF`G_>$^ulHpPCJjmFFnN`Zd5AXtX;k}>--z|I_#jhRs*ZvJMkNWMOq4z1ibwD5f%07V4dHn5FZ5v1Tt8d-# zBK8`$D8Y3K+Dm$e8NK+ocJjSYD% z!o?%lFsemxRHzSna#&--gcjivyp5r~j4_Z2@J>Ty>v73x(C%o_-bFNBWUput9%>QZ zgM0%*J+iI_;cG3z`{H1Mmo+0m#BEZgHQ( N94x>Wummgc<-fU)kyii! literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/CalculatorProps$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/CalculatorProps$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..e32e9729fbe12b1df8f6510d87f86fc4bd02750a GIT binary patch literal 5138 zcmeHLUvJb#5T8vBE-?uSAt`@Lmk{8NRJJOWJ`jWi5uiW<2tp*DqCI<)Td>!s-F0#S z^$YO8*FmCE``!4kfV2m`LFP$4j# z;)G0Ydrup$xo-$eZVD-kVBrP}6HZ`ewI}l=i5grj5xDR?kw!#(MeYbK8X>y6QAfe?+g9Nn0;9G127$_Q9PlcfBrw%ed|#

p0xu0rlgkCD2LKN?R&M_(}deAmXowI;g7kezWW+@^j?3vF=Pb;QJ! zQM1?L&iFpo0b&;Fzap{{wL;+wLv_;P3Zo*mQHhVaN3*1=)v3@lkpbTl5^3DR8N6pn zX!6o7T}!mFGblxww7h4)Imlux7NqB(V3Y@wt*inO9fHY)blEkOqkV8Bv!!MemrA}% z`*xaI{oU_0vLO|iAw1&Jq{~UjCRf6)C)U7BVLq-kZkln>58!HUR&twBEwj8{g4(s* z7S&T*WC0h*nL+_5Q`gfSu9OHc;@{kxhUMBJ)RmR)hcM{?k_rX)5bDZepkUz{u2{J| z*gdVY)7awwkek{IqlDc4nJ$M+>)ToE?hGhbwhc)4xxPKleS|;@*jTmqvdVNoc9iRI zx!S%rdL5XAnF(;)m^WNEc-`(N8n$JlOeFeU7BXRu4+XmU5({C6v3&6- zaI9euOava*hQia*7+fZm(*+zqYQegv#G@9hb38n1!T!Gt5O7|^iSqdaVGG4gPiWM>K|TNI0E2!TfG`U4 Z=)?$Ifd%UfViC9s*U`uu_-q-heF3HcoP7WQ literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/CalculatorProps$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/CalculatorProps$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..cd0d057360b05c88ba1c0a24b82d41fd283efbf7 GIT binary patch literal 4562 zcmd^CUvJz*5T6Z4eKCQQGzCh5E+K_GC^kh@l}J?yML-W-(ujsgNPXG!ZSJ<%>(lN! zy%g~Uc;ee26$#$?P>2~j*ZU)jGvahq?St*z_3Urw|IGgR*W=#-;09dxV1>cHHBp!d zrNal}M1(dyb`OP-p-9A|6c?>hp_A6xFcNW;#loc~+pw;9}Qv`fz*h=Mq5A*B+rdL*1m^Vg2ZKO@(6WQfanhX@Oire|Xq@7qM_H*v99`+^g$|yzwyL=#`A4E^` ztr0&#A#*@72f56_SmrI>O{L{JbvzL+>T`!!ayUTgrm##DkTwHiF{p;@uM+W)M?w>P zNAf3vxReX-P6yIo9bwHOBdDi^q?HU}6)DGUHjoCbqOCJogdW5TQ#YDiS)S>xJXRXj zc#MB=EV9^5QU`o5vyT2C6&ITHUI0%(R?}id^~^KI@?iF}q(i#T|e#40t8mN zvn+8W;!HLQ&YMd(c25jdk|i_8F4F+ZJnQa>G)8sN;&c6P4oM~7`WMG7AVL?-(le@o ziiKyfWXtsg%4uhrhKm2!(lzcmqjc{Y-;IT}w+dIeT~e;74aoD{OpXi2JyB7a=6J_) z1zzrH&zpLEsKd)^@FKjz;9{dq2|LWY;lio%Zg#zmy-eX&hXNZ^1{>`Z+sz|k6wS{T zYp$;>gM;>B+w>i5qI=Udl)+}BIl*he8xmgrHq%ZevZYUyRmj>G)TZXmHFD;+N4`X) z`Tk*;7mJ)C+|S~eB8eC+owYC=@tK8nwdy`r6?jcXLBmq9F^13)PO4MuyMSjq!A|S zpE6i$X)R5ju%-3jeFnP=h#GY9aVqzqId#1)Oyj{v46cj{;MCQbwib6C4?bq_=^Ubx zyRQc!gBzv$=H1ItC40(RtYe4RiCef13|_#yKVWLA;d2h>9?m|))fN2uzd`-`4gXhI z`vYeyu#Rt{0esHmdo3UP@G5NNYZqV>sV?H!$M0+SeI1_>BJC>>-zY)6UyAr9Tt;39 zkB#xbv@0@%-KK}gu$LFsAa0i?W93oKG%5y^|q`S|W%+=AJ zdCL@cS;*c+IH-ki4cA7y9t*rUU?x&-`PbtM6*Y7Qju4nnz7LqJxm(qJ?im8vbuSQ7 zn0o{c7fZVYj+7&xXCOylu50~JsYqqv7|DNpB^B3E(BwY#qOc**n}{TBsHht7P~WBb z+)kZSpL+qu=+g%C-mn^{OP#QtG;GI)?IdA4-LRLaA8}1(WN65YSEmNCc&mZ2_F*Z{ zv4l7_L}xtYe9juTsK=y*uX6h9M@&Q+H3toz&vmdym|3X5#iSB80^tcmb==?zXGLnG zVh@vmrn6iuQK4xpeZD6o(zu6j@R`Md>9uy~W~_~UgI1JD%XoHJi9p^0#zg$rnrSKhV%lslW{3A(tjuPD0kX z5_UbYDrO4vaIJAukNiOZM{`rb+8|i4%Yv8})5uFxaJ$J`B8C`l>tee8>n&4Qv_N@h0{7nccu~9G2I`YuDAb<-aKUC_$-`&IRZ25Z4tXz+_06~ zO+;>*U29g>&TXKmN%L!mp;9GK*oaVf?lL88zdblt>)-MSEEG#Uh$+Gv;tlML1o}L; z?Gn!j*}I*k-}aAWs<8-st_WBmI*wYAQ1#IZAvn5gTV7iKzC~o(%0=|V72e4mF7YQ zZV_1Nl<&T?oBebfB^e9EyEHdvH-*+%72Io2qlQdw_+29c{c}PJJ5S(#shaq?r})jTvA=|tf`wv-S)t^zs`J_M8iDKrKILJ6 zz)%nWk=9BV;1tPxeI+$FD(vt&4OG+;=rtavEv?Ym$jnf0V7194sl%;aB4DE4}b1XEU z&Lt^yzD$LoZCU3HAu(kQrQ;krcDu(;(spY9Ql`pfJt3Q(2L(7i2st=IV5C&-iM<V!Z literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ClassWithPrivateConstructorAndAutomaticProperties.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ClassWithPrivateConstructorAndAutomaticProperties.class new file mode 100644 index 0000000000000000000000000000000000000000..aa82f64e1732f1a3ae2874b8b17591da63ed3409 GIT binary patch literal 3680 zcmeHKQEwDC5FV$O?A;OwNr9Gz786wILg{TwDU}+E6h$qhItYS5)JJD`?#^`AzS`a+ z;e{uDQza_3@BL9#$GbUlQTM{7ARZzfyld~yexCU}{yh8lKQI3TfN$Y?08pYy)a+bL%D zdmc76d&m=vQ;Iv`eG&gEy2zJ?{v5vo)XX7V`PFA^YD@M8RO%qiQgR=x}HwB-vYPMH6J=7Rre|{bl_$=y0y%u<+)0* zBNgR-N1I|Z_%tmIk0Kajxfu2AeT=VUV1jiVV-ki?hm*4~4W}5KZMMBxRETuBu7$|X zwP{W7<=HlxO+mWJV4Z&~3kyLuG}|kJuocKMbB%I9?G-^&#`- z=i5ph&N23Mg0toj{TWT|F^hFXlS3vuPGZMkzKiYwiey8jyJgxkIMZDIZw4?}e2^4tJb1gV{oBJqn)Uz!-_iRR$M_d-*_RzF!^( z&|+}yHAWRRbO2v5*sA>Q&1ErwYYcvv418TVG#wFRStbns92m^rmDWwu6JIww?qbZo9tG5Aar|CLd^h2131sXNrLpZaC zaOD8P*$RY{1%jW2!AI~hp`WL|NB@NGLofVXr5B4881ofgF!=O;qMfTm`wUKv@ok@> pixs{tR-o00anIvY5o<`j%QXI+T9X>UH`ILbunb?omk`0%{{maSmrMWv literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DefaultedConstructorArgument.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DefaultedConstructorArgument.class new file mode 100644 index 0000000000000000000000000000000000000000..924a873db1fea92bc73a968711e3bba0022c706b GIT binary patch literal 3697 zcmd^CTW=Fb6h31dukD7Wq})oNOag5k6})W$R;er!kKblo-<C=cK9mz3QA5w0+DyFUo+~v0M*lHm=m*_^qjJa_?OSiecxk`nhnT&Z`NX-7W(!LzH zM5X&x$M>F#Q4&*xeIn1C_2K8ai4BBF`%#J3p$bRmVGcegaH7$2;SGIn%7f&4%R&n` zGT+=Sm-Yk}TMCQ+lR+667|XUR41q_jgKnGa1g?)#%c-otOE$Myk#cO4K6ak}#YdTR z#!cB5MxcO)Ofx*mT;Fm%#dks^zT|(t6Z%Hujp6+)Nt|M2@ZD4lTq_Pb++xT7k-+iB z>IlgJ?JArh@Op}Vd=N){1}V8Kc0_bX8a(@McC^ zJc}wpp#E58I^w?wm;TH9m2p4ZVK%*;bYr=8_T5~&%O%$g=S57mxjsuWe9_YT$6@rU zq$cKxD02L@>U9RABfKOM@TEct% zAE^GZSpN&=U*S^;7Q83HPZWfo^LR%uI0lQ}HV0p#*Ku4g9Ko+n;KI4O`w+H_>ko%L zIe@K|c43Erj{k=Oo`TbeGeqzjywa}`*T!3(<0HF*Q iPz`)#xyYnUKL6>$1S8 zhJDL44_M4L6U^fON+3OtI}dUM zM*IFBYOQn@j*!%s7gBShB1A_+6}JTf#=q0HR<(%7<}USf)fT699!5yBPTMSe&6=D} zZ{sQVn3o;%a>BgaXI|ci`82I7Zm3k2#>|E-YB3I9ZzJC$=bWQ; z8ZzlZ*Es!=0IMjYcB9Sx+;*J*(yYt0U?|_dG6f4dwNII#9 zFX@EQ3SwLC#5Jy~E;|GY6@{g`x|OZ1%d~9?LtwS?HyVA0z);b(rPt)v4FLk<#nR7s zvv88YyF>Km9toj4O8H-Eh{Q~fSQgF@c=cx(>_O5e;IF8T4*4VD$wu zMa&mvR~Uh6-*erb%r+EvD#`eIkc@!jGFae}Ylf2tCCYSJ)Io=ndkYx15FMxaTmmV9f=~;XoWf;SLLelHkf2Z+lomuwQIC$-OE#dbp4KZXPn z-1$iy5aVq^s8k|Vhyw@jdS}P)z41Kz+mBCQ0N@_9Do`Ns)*2qAOseRBjaX#$zWcz8 zh*-*wGzP7dkrUS0h_i$b6Xvvuo(dyJB3?_FwHwTC=~qT)!Z<1H^j`&v1Qv75gsFb? zvUec3BT#-Qm2{5?+;4YJC3}I4$H`F#GbKyp5pzyWGXspB&|fT zk9~u4JEOLhyufjkcRdeA&xI0(q1h0=G-AmRF_-^*&M>Q->Uij>7xv#P+_jG4T3KnG zP;NsanBjxN3fv%YXKJ7mcf;J{S^-L6{nT}5x>KGo>o;dpT8nMmK|5Qx1*jP>GJpaU zvE^m_uHe^Qj27@6e1_^?Gx!MguX#=bpFRh0EaJ1C&jYv!%{*3uOTQubyt5$`;WDl% az!F^XYjJiJ-`8-g-~iO?`3rCzZvF(Jw6bIX literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedStruct$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedStruct$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..10612d4320730129a4e46af59a91e4b3d6de4520 GIT binary patch literal 8833 zcmeHNTXWk)6h51#v8|>}o6tfjmn8(SxmZA3E=_64t;9o`gf?`BC$p9}$rgEKR;#3e zfd_s9e});Dfp>laKc>T3$&RH)j+I7afbokI?;d@7ZhQ8ev-$J!ufGGpb*L3!gh0(# zj@@EH+7HU`*I9+dep1VIA zg3RLxXA)=6)}<%cm1qf#YZJJ>l95+0Xt;bsg)hVzuX}ARJjvWSxkq3!VkO2g(pY6m-xLzPaT90oZx*;ZPFkg-h-cBXQg^MslVDa#_hv|CsiOaE_ioF^m zg2_;Nd?&h2dGd{oFtb`bl_T&|`Kh{CdGb|+Hwi2c)@Qbzf-Y&K>>e{=i>)4a-YDgm z%~JvbGf(#G)|q0M!*dmD+!etluryfE4EYX$Gm-Om8hr@~JDt9KC5+a?>LhF&Cf4hQ zgBMweczjsn9Y{HcHC|eKeDEPx8rFCN3YZK! z>_alF@rISpfj|{YFiW}C14Fd%ma|uB6R_@kfpYjA5mr8lW^Z^EiMPEqDY;s3neTJI z05=KD9lHi1P}slnzD?kQi4JzWZYaQ9;wC)G2n(=~7>)9_0xWeQ;w4i7J|l3on{yAi zjgL2kQRKVA_c2Y}z$Um4?*ZN<<9+`ajKFDp0=^4S4BsWN!uJ^%N2;?S6@hc%*aVyp z-xpvK-$k6Cf@kn~5r17nM1pVYH@NiGpqz?ON#Ws(RD`$SZPejA$bEqzlu_3~k*XBx4XB${{G|70B{2ynJ{KR)0d9j zp$!yx8&pmwTb8aijW-Up0t;kW7RP5So+fSLJ3^;X%3$E@OaI@0PTtP!b!gd2CId%DSs<o8BiYJKakRs6Yz>r{_RU4neVyCia1`U%aJI)PP)?Dc3H>2O{~&Jn~@fCTvV?` zy43lG?lLmh=TnO`u4#>Hp~kg=#&e|QF`o!ekq%W(n<&I$dtKBng(aPuwq;FItQAAH zN?Lf2I8muNGB%p|J7_XCTw)NE_b*he$ZtSgIoCF zw(}&3c1)#8xK9GnVmn-5H16Op_?-r>N=nzrO5iK~3rZ0xbofTV3CJiIj~^NZomwRF zM`Oj4Cv?<~9*th3L-{Z99kDlys9r?o`1_{FhR|g!v1PNfKveB??I40ZBdLO2sebo8 z>F8v@F}JV|6Dq7{T(q&S>w-qNF~?8`iyc#Kua$ni<}+2tQiZ~g*|!15YFcSvQldgt z|KVjB7h9k% zCEd@Zl{Q1J*noY8h*eq*I@`Lh7}|aouwjmfRl-vO7rO-(IGGf?wZo;a{z8nc^_Y~r zg-Lg)iC&25vsWT9yfDbW!5{^5?`XwF>Us+%;PfQC3{wW2t2A|_Oaz{PeCwM3e0H6p8chv8Tw?2u6S(&Iqr zM-9>AK1Z^3eee&*70AtM_KmkN0k0XbJbbXB=NkPNh9@XwdAM;i;CyV+6iGdBF;OSo zv?LS>tsXZr$nGrzE+5GbfpFOfsJ~VUN3T`JwUWJ^9u!rxCq;*6QOPzC&0EIh(pa~0 zhE7L7X<}1ItY0eXV&8z7zEczPE$!3L(|dMUAwpN$tAXq4P{d!SkWvaI6~WNq^${`_aTzo!G!w;%=R;6YBD;QTbi(Bz_lZUGKQNb zJT%~X=6i?ZGdXrOVY&E=$vuL;SmC~pKHtFOp$}KVfR}J03~(C8G0mRBdlTgGx&cp{BFTnm=2%43Nt8mE|xlv*FKtlCqlb$7|k#< z(JsR4IcNiJS!k1)XqVuP9JB$qH#4|RXQIsl$w3=%%R;-5iFO(0a?plzo6SUf8|HJ+ zhI6};iS`b>8>3lx)jqwF>DMf6?`9%apo;O8jFR^>qJhDbgdR?IF%$ZI_#j91;fCDI zMEekGIcUSVeVvJB!$&!2!@2EbqFsfl9JJxwL|g)@ literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedStruct.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DerivedStruct.class new file mode 100644 index 0000000000000000000000000000000000000000..d8e3b99246f8dec9acb5e684e85070e1ff5980ed GIT binary patch literal 5625 zcmeHLZF3tn5MGrw7at*MLsMQ_Kn*F_y!e1pTAI+Aw54DsX*x~l44*RcSxHpRl96<7 zQik8f49viHegZ#+VWqRl-Na6g_Q(L!4~}Aa@7YJIeY^ebkDq=4fGcn#fD;6kjgF%( z6Eb?p`YbYP%RXY7N36>pE8H|fM3x(CqL?LdnlP($ben6@=bd${)7S=ZlE7*Ibi(9z zwAOyeV@qIiDNckG_6C9H>Wv2kPTo=-9zc!2%)a#JS}Q#X&y$(ozm}RCl^`&URktTl zmr#=Sv}z~3Yp&Chczd>OJgP-e4Eq14q_E$)b90oSQ}zhBjz+7fplyl z|KF2UW5QOqmxx$cYSJFp=-kry$WfYR!BTHfVQ4Bld`n35#x48>|7U4p^U_Vani}hV zK`F|lbKeX&2bnqJ)4N8=OD*I1)mZWP2^|&D)tsw3l>ZXnif^;b(aXp@ecY4@2v^2( zAv-z?WYx~q4l4O0TBy18#`izau1f|2a|`csX?;BtatBMZD`>2ZIflhp?6}=go#Nw7 z!|gJbDiprYze@#H(|QY&5|g&^539YaDfS95_Q zP{P_xr4o)=w~{hH=BQzf}+nL+*y1}T|)s}-yC>O+`>7p7nu zW(Z6y4Tb`9^%a+JB0n_9GR&eI6U?mO+fA0zHe87yFuS7gJ^sOT1}(uNA{=aZ2%H-bD9Abn0YbZCpTqMc2Mqw?1&EhP3_%J4{ul_7Z*~Y=MRLPS zI%2+(?~72~45}+)U8_G4lp{8c#D=+ZS?&=yJ2YBue1l4-QE5T0aA8@!^%oYjQ;~GI zCa~&G__Xt+g_{}N;v`%maPjb|5DtY1gzGBRF~1|cvlJR-KgJ<&{(dUmHMeA67=cc; z>?SpSzGMho@IJE}`QqR=qc6DRnqec2hB(z{Ns4Yb*OIPj7sg_{{iVR)b-aW2n`%iE zzLhXzxCx+1pjDX>(A5U!2;f5k6GwMmn>DT*sFXmWanLd;_>n;POb(gLB2a-v_XSF;nirM6{#Ty*sWgz)XTeNxYR+ zVGMRH8~6fcCJ5jZ633nZE*G7G3H%=5w|9oSKf~lVv*C|0^(*e4fYbQb$pC)N_#HRp zoP`&`t!H7*ujk+;zrGBw`1Msd@7D|PnqOasH~dQBB4X5F9^M?OcVUFyg`r+#`<7?$ tHq>!-tQxq!iywgZ@H2~i-^bkuS$u%&N4S25`_m|U8P9hGuEM9V_$P;UU!wp3 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DoNotOverridePrivates.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DoNotOverridePrivates.class new file mode 100644 index 0000000000000000000000000000000000000000..fb5de03d1e7832d60bbfaabd02499a7489f45a7a GIT binary patch literal 2426 zcmdT_T~8B16ukq5mRbQTpaRN3{3uGgiP4w{Au;%cmX8QF@o~C4rGvXOb!J+D2Y-lv z#6%N)@yQ=$ytAd2#swk4s1LI{Grc`~&z&>pe*6CMGXUI$xis_;ST@@CA||A_&6>;eJ%yV_2+wk3jpwt_Z-mS$?LAbh%C0rJ)*|5RS~MAkq#;FMI7SJX-162c z+uXMV`WJ*0c9FonLMajc8GfS`>@8!YV4>J!Rw%im0zN-mCXiafSsDfi40Z4yX{~ey z&XC@BFQw*2g-sq%Uqy9+S>oSmU8_pSBXgf-2R3V*2HX#kTR`i~f6cZyooVM&Y|$+` zy2Y4ou|s!;28tUhm8B80evMkh;yZO@*M+71qAO(4rC2;3a(2K4?@*sf2VddzClRYC zqjtB>vjc6c|1zw}v|xA)N7883;WzxsO5ph(St(b|gpfnw5B-52D8G|V#BEIl)ahf1 zg<)aCY9Y7g=u*gxS!k^mXQ?o>Ap>3&5|vR^I+lt%M4EVIj`jINIQ=^rW+4M-bI=Ea z1V#%bm#-H)K&veA4IV0CNmd(Ch3ieH1_Jq#!YfwZSI7Ql%GQJ-@VsIHxl)~EPW-7FqTXER3Mo4YrAQ< z-qjjg7b6V?0#j{s@9ManmY9Z{1aAK(D4}l>$gK!t(4;oeehf?lrigtX@Sdh{^y4~> zt2?;cgYWDo$h^vDKS1sau6keypDqS)4C6Bw&$Dn2^6_3DoIilz;!cV%0)qz-IysCc z|+!v(l_0HKq^r38e0BErN85XKS^QZR|kd*Cu$aTUPX6uzf%T*U!!3r7Ykd<|~E F><<`-*0%rv literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DoubleTrouble.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/DoubleTrouble.class new file mode 100644 index 0000000000000000000000000000000000000000..f1752966fc96e607a15a79b11168377bbbf147e6 GIT binary patch literal 2517 zcmds3eNPiH7=H>I$IdA)f{LJ25_Kr<)M!kEkPsBb3`qb<{IlE@R=8_t+fCq$nP{T_ z`!)O?#;148xiFo^mk@L5_1ZlB_4mBr$Ioxy1HgT_<3SIB1*5|tVL}GGtib}Kw(V=C zdB75OsBqH=5m;`l2|^Z!^_W?ugGZ{q74r?9P9Ee445p`JCU=6>tz8~k0)2Br3Oi5W zL8;Oa_8DSl!of013Kok)W`&X~D&n)#n*?%;_~k)?z(5QCvDQlW!zt3c_d;rJRNUYZ z4OLPT$PSOwnpQ|JF%PL<*r;+E@i0c6B3fhN9^2t`s>!FEsabYvmQyv$Ej6cTq`09{ zS(-2#R;fiSzF$M_+OTw3b_Ogvishd}_6tsUpN332_$^MqDqhERltXSI9-H1oFOn;s%zRKfR5f~{=AE!oOe6236NcggB z2qTc$f=j!!SRfI<(sa&jKa3Ih^b=*Jd7_KgPi#D5ZIyfd<^W2nft~Ja_D0V0lRkE~EHhjmbzQN2XDlKygJFgLQQSE2e=ffXd^K2S5&=JoMq( z!___9?ZMf92mLRH{WnnjfU6!Dz_*hD9E12Srr$mc!Em~lhqK=xIJsX%7=cl|=Nz7N z_ngPM$)|;Op#z_xj(je{cvrNE4rpT?&~k7Y+4R6<%Ff3xit8yHS8)K`#^Gx5H7LOi Hn1S*aoZtJo literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/GiveMeStructs.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/GiveMeStructs.class new file mode 100644 index 0000000000000000000000000000000000000000..08eb959a60c607b6baf500ec47f99bec5a852897 GIT binary patch literal 3573 zcmdT{?Q;`F7=JdTy);$|l{YQgrRbRQl2brY$}qzeC}k4LNW}5u=5E_8-0jBQz1Z@P zIioW=e$>zYJ&w=rwI-Qd@G8RqAMQ4{_dLIQUVr=K&%b~E6#%|~8v#@Z+%`H2Qzm5i zlnq#D)VBSRX&$naJy*DCga|D+)`SsDqAX!n>2N~~c$+`AI*Y6cpi1DF*G`z+3AegW zd1ML9-V{>UTLi8*T7|F=5IYwRH&IfsL_B9!DA`sqUt4`bpt_E~0+=JPFvP#BwbC_s zhg8|OQgfq{0gq{<(!N0JP@VR*>LxrjH)wsX)8jPeQG!0jw9levY=_g81ACgen@#6t z)4SOmy17DQ#SN9p(v;b#M=fIU-9CCZhNYvX3t-ck*er)!pL4>yG-A@hcRBsn5vwSp zcCXLta|c*&rPzRJ!7vRkbmN6D=_?C`3w}XR^Q;uUcrB?oyqQxp{zoKBAWac@`6#-c zO}XuQIAs=V1np5;)mtIgdk6a=AU8q!wEEv4>gO<+|evp1@*DA&WfOZ-D*H zs_h9wV7>Lygu6!INW;9g23Ig9tB^H9l0TBLX~4KS(6tBvg)m0|64v|lj83(gQ9>b$fF zw96VWnWoi|%FW@{YVaX}-%Dg}N|(POl!BAT4!3zVwuI%HB?Rs^4pY&&@&uV+gw7H8 zt3-rK*7lpjY6R+!Ri-0;Pk6c-qeef*5Lo&qlUAgBQx1d?Sem!pq~hl*WU;fppmsw) zzWB{>gG-D)PDWU~GXs`n*fUGT#Nq}&l$uRdoH+xIZ2usUUpHl>q!Gq)Y3~aJ(@}3P zfJfm3dXYn=iy@?-wJ$!>!)~Kzzg7O UypCa}F2ZF9;d8i(fAy~a14-OubN~PV literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlier$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlier$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..8336294ccacb8ac69eb374698a52bb7fec6224a9 GIT binary patch literal 2500 zcmeHJZBG+H5T3=twI>Q9sEFu_h^?BtU^FH|For-ZDPjak{J6c_wu{%@W_QcmA2ZQJ zzx!MK4aV6kwGbQIAPHa0|3q&4?M^a7)@akCad8_ zd51@qz|f+Q!Y&bbo-cL9cMvV-u!x?5CE}1-q2#)X`9fivKxP@=Jjf9k>EN$ut#lSH zlFZ6`sku?fE{|!X>J5Qm;&R&1s+{n;c|rZ$R*ln`M+qhu(*}z^vMQ%D?RbJ#zJbd( zNb?Ok`OeT-aYLoDw9af)qZYCFegm^Rfu*Cs?PTCW4EjU%bIy66Moc>RGN->2v5GQk z4;tLhwXx2|&3&;4QXej78&jWX8@pU<5%Yf!-<3n1+nS20<9wMVNq*C6A*+w+a>9&R zY*|YMDhzGPm{){Ewkt}f^gCkcv2ze~&OwXQ9wGkEt(LD7-|cFv64ci*k)Qd`)D#_Yr+sHmCjCG7YJl4C|-L! zNeGPR3x5VkVCr2{T2bdkxhssocwRYKNyQMu@k{NhTgbu<0zdkY&Gw2O<=ls0oHM%w zysA=h`2aZ^tl=gq+>lMx)Dd45j>ysDr`hF$RZx_Xl13QIrG1Uvj_Ig&Kw!8iCD*A; zaN_|b@bVvt##lN6;=#QWjkHyN9^5Bzr!ABx8nj#5YM>rGAn>GzQDIXg5!Z7IZ<&z!c^)0JmTo aM}XUS`?wcKINXIvc$nH5n1NZCgZwY{*!7eE literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlier.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlier.class new file mode 100644 index 0000000000000000000000000000000000000000..30bf29fabf12e126973019b31e15dfcfebd28f90 GIT binary patch literal 1885 zcmeHI-%k`V5T4?}-mNHz;4e@sf;o)YeK5WV!59L11jTqr;$v^OcUSDTm$rA@@sF8k zqVN7u#_8U{K`?;?5?_4iHZwc@`n5Ct=GX6UKLFqbJPBZgz$yX{X6) z$`gtFQrcq47uMi({*ZFiryP08QBFA;Ql6)&=9Vh$XvSR9qzV1ISHW%*T&&GOb{4b8R*YUdCNbBIM=6sNi2Isn%Kf}c;C)y-0UzE z83I#V8YN?w8R6}Lvsg#H+2>Lcm@Y4!h9VF&v`%Y11PH6TZ4$mAJlf>(+VTtt%zkVu zCo*199bpCT@!D%fu5^~bTn^rib0Nu{@f)tVVW?5d1V%edwh?!xq7tpFu#PMD7B!fe zq}d}dUQrmFS3b7^+$XSkL2+Lgz6dcPM_I3ctem zPxOw!Bz}Di;JA@{eE*t)o8aeZKO@Ra{^u6l#@R>T!TBBzfLRzTGh=W@LO&qJFsc+I#!l`}2AG<=cl(0Pqk(4|)i^F**uUCSK=NeCCx_d;1>b2n;td z6DD`Um91SKSpxm@LJGS;;8C&C@n;Sq6AsHLDOe&7m=#JctC-J~HVEVv@y&w)0z+;5 zr&=qWhcl$N@mgwbRMOxvjZ|6_s52g?HLbQ1o|?zhA6Tz)8uKVYOJiDN(Ob5|>2yn< zATvI2#s^K~gSPS0G*;YDsVq&IjjGfl7T>F(bw{vt6gamAPQ~D4$o_y6-lGwd4t|T% zABI>(8MXU0?hmxE{(rHR2G?4|yo;sIXoVrsLSi_#m2Sq@d7d7Z^+7x9vj}!k<}}U9j64mqe8|JuLFj{X1V)RM zc4cNNG%I(gf?mx$z0R;02^1;{OKXE^;ns(nIa?Kmz-HwSanl@fh~#_7MkB@2Pnu?$ z;n#`Py0jwYW!Vr$pkhy4K{jaw_3|sN2+rlJeEIP)UjyFGE&kAW4W}?1$I;&Rrd)DmL;~=CQEVS z!8C#2S{JBgo4-7`ainW!72(0HBfFUkJtz^FYIUO{7X}BI^>7dF5V+q(s6(Uo;4XoM zj^|E%8$s7C3uBPv*O9&r+yer=c=Z7sb4XPExb|@M0M|V@`yU~{S@7S(;AdR*zz~j3 z2Jjiiaj^OB!+9t)_b$K)N{t>$UBtPC=FVhjmpY&oI--ricvrNE4rt>Y&~h+|8uY+b en8F!=;^U+C1g^n#7=r-Uj;d$iCKTZ|%zg*Zye-}U literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlyRandomGenerator.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IFriendlyRandomGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..b18b766fe5c7974f3aecd6e93d32b7a5044ad98d GIT binary patch literal 626 zcmb_a%T7Wu5IsfU8hqgc6Qk~MYZu0qZj1?f4L$-UuFIujNpEY~UIaePg&*KY8Rw!A z6ESgNn`SyQXC6J%*SF^v0EgI&P+(|!m+(|5!~0?&xVQJ=NjS+xD#n(KUMU`=51uDN zCz%$(IvzKilBTOiEn&JgJ(EVd+!3M3P@N>w!u0rcr!SMhP-)xDC9>7!ki}su-zFd>nSC?dW!z^ z4s8Qm{ZVQ5>%ye1@OvZi#JS|>W~U;4pr>37oDhxq^frNz82 zIjby5_GPE4L_EygIJ|>%<3kR{$6y4G5tuHNU5SOMhjj`i^`MC|7Rk$YbA#&&Lt7y* zRaR&cRi=d-?@VTGLl^>4`Oy7#nZS6R+ck6}U1dod8J#Q?|0GXf_H|oY(c~q$DU3j_ zE6#0Fk3_0|xm%gbIXFW|W&k(st~glM)ZF@n>??hof6Ko58351#)kv{7*3U4M!Q6z`Kh9 zye9EJmcILN9H!E_6L1ovrgx%F;j@e8)^yNL_dq+*6K&=%(a!WlI}5XYxt;65ZLSAe j7S7{-GB6Jmp8yx|@=*%{3$O??a6KJo;SyYdB3%0gC@+3! literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceThatShouldNotBeADataType.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceThatShouldNotBeADataType.class new file mode 100644 index 0000000000000000000000000000000000000000..a01d5049fe0c405cc4add2020e163c6adb64ae77 GIT binary patch literal 1944 zcmeHIT~8B16upCmwrdeY&?u-QLM+DYKKUYqh^Sb@hq1NB$LZ{}9o(I1W~R09$4oTQ zcYl=e&K7Jy13c6>AEw)TdwS-6?YTdGe)$Ffk6}3vV+88f@F-765dUi(5MXA zsuk@u_62tY3Tr%(O1gCdm&z-30=Z2cBf3anYKVSej5Y z7$akGPHYzl-}gEduB~J08@eT2x$2Bmtw(e-Vb-nx)j$ zpWg5_axc9xx_>Ze<2ix<&o3M1Q_b0ANph+?buHsj_Qvy_-J1XkFj;~tFhyWu?MQm& z%G-X{qD-0w6SL~YXlfg$Ww)C)gsCyq7XmZe8r7oCjP&-AbFwAe9x8>Yv!sil+49Pt zd<253?iwy$N>B9Q0#oN>A~659tDHz~_SAdn+B=zUU=2$<(puCEzo_g40o+Bn z5dp?olh?L1l!kG#QGD14X+K11nyhMC4sj{!VaGmqbOGjI*RkHc){nS<;2^r##7 ayom?k7M=h-^LTEfZz;2Lc*`B2u=oo)Nq4XS literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithMethods$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithMethods$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..0afd62ee4513e5ec575081ce15306effbac161cf GIT binary patch literal 2401 zcmc&$T~8B16una_TUHcAPyv+@QCr1sG#V32NDT3#rihVR z#kS`~=Xo*lyx8@8o<@orDwU-TX2UwQ$i;V?=-nYM9Tr_oi%w#3FlK+mfp=-hq@&;9 z^p7J}QAX`vllvnbu0AkF)dw;l)A7RAcDU9e;(fFYAm1gikrW^eeg1C>%tJI zRsP2WDG|tRaa&_?3%@^^FZ?Z)!0elrw4%Ywaz_|}%AUB^Ng5u7`ISy;N;$Yh;O79N zp|j)YASRvK2hx-86RS^*W2CBeYzz#^P`*&h!DRwJjxQEHj-FIuW4_l_ONacKa1}d~ z-rKI;vGB_>RMH4zxwJ0?*Gz}?Jp!X;DY;I@2R9zf6DS{BZKJ;KVDaF_q4Tlbd>-5) zFxMHlhfZL(wS6vnP#|!>4=CmE^xzJGQtH0Jj&}^tsxSr%sfx4Hz&*fv!XF91HH!mf z7;O)&2WV&T?tg*Y`w9OOjDABa17o;44B$16>uB=q!#S8p-kpa@L`@x_F5tbx=JvGN zE~c=Jr?O4MOkcLy6t<}pwk%vh1sS*sb9e`!c=@QFz%{rI)3BJ>Sy+IZkcZp90bU#J AAOHXW literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithMethods.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithMethods.class new file mode 100644 index 0000000000000000000000000000000000000000..465dc2851a83b2a1971b1e4e8b3311d347f4fa8d GIT binary patch literal 1563 zcmb_c-%k@k5T4~%+p`KH_ybT@#H1K=_vDKZ5j?XAGdeYcJXev+1=K{KW3td zzWYZRXRlxb65B)`_BJy+_wBbc^Ucp+U%vyu6Id_61cRzIag+(EqC?RWk=0H2Ss08& zCXO{Zt(1{N>ueN@H14LtX%khe%AskB7(YnYevPiJ6I*~O26H(|DpV`lZyaLm7!I|lKbbp_;PIJNCQ3r$4Db|QE4>clWOr*;V+wY+LTsZ`9fvmZzxi6qHArcjb#uV=&p(Jh4gSs z7gxZOVX*wJtDMZRs(R8&y6%}5MlNTi)JotwCQ#GqVN6r6Vo((t*X%d`UWtkAj#ci;ipMY?MeR^k3{$n)#F literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithOptionalMethodArguments$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithOptionalMethodArguments$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..a01ce57f364338a158668777c2462077e28ab36d GIT binary patch literal 2800 zcmds3ZBG+H5S}fCYfl73P!W|AQC`$uG#V2yCWL6LmX`=(__)0;?c&{Tv%AH@A2ZPe z<5z!_arR23C5LSY@WBtad%HLL%rkQ{v-9isw*vrp4!#2^0wt{iKcZatJ9L-&T5g*! zR571MbYJ48=G-?-8|?=)3~C`YQu+D3FidUJfPLbovRXA<3K}jmQ<0@bRjx%$7(Mk4 z&rYo=S>JOYO<*Wi5K>Y0SBpC=Fa-Kua>30j0xxC?iJC1$L)g!wB&Q+Yr&imtEU|^z zO#{XeYZDMs0vrt`#bkf!(Ob1O}az0zJ)m^3(FR>2X zy0q{N9JMJqhU7ng?g?ZXk&$rrG#}2+FXv&93mLfF54|uzV05Nn9pc9oWZft(%5eo4 zEO5bAYEhA?4T?!kV7MSLMK`J9c73>+HWjW3Y!@z~;4Kj7t*|hZ1f~;cw;0kO9vd?L zp(YHESYGUM&5`+{&HT7tA#u0R{8b1(bzF3fDjG2?%57)HV?}j8j*{Kc?=j5C zya=SwTpPUa-*Tp?3MzX9`tw3CwG>jVnRZ~3z}C4X9rADOGw!$b8I9y}V7hI$Q9B%% zB{0#vWZL?jqprh&hXkH>5K3rG9C%FNed4*(HB;!+Wv(^WybZkfH9P?VJ=n$pj%loq zeYkdT^$gc3oZat`*&24gLjMn3rC<<8D+Blp;n*L)yKn`D literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithOptionalMethodArguments.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IInterfaceWithOptionalMethodArguments.class new file mode 100644 index 0000000000000000000000000000000000000000..af44c780b5831959a4cae53574fb95a65ae942ac GIT binary patch literal 1883 zcmcIl-A_|76h8&Vw(E3=;zvNOI0Sjveey+!2_b&W@D)J}k6mxsioNa9c60ELnP`IV z{!zx$I}oSn76T8xH|O;9_dDmb{q@`T&&L4p6z20VLSWBX9;Zy|_<(g-?99IZ$gGH2 z%8m>=os_W`&byd1#oLN`W8+#)dtvt(7w@HSZnnHMnyGc+nu9)Y3mEFuL$$m%!MnNkkrs1j=X8FRV4T09VN9@jGpWGpZvJ%1zpm zm;>_BmNj)HQumBT#hs?0iQoz|PiTwr53C{R>}fI8UNO~BOf@T}dRELVO^k3<8&6Z_ zd6Rm?65ST&+J|L%HMFT3QmhV#92G-wmvW{9d|l9=g?K|5^@lAH6;H7SgaxP}LI$x7 z2{V9c$eb@WY_lV*m5CUT+mIDrK%;hz#3T97&HYOqSPPwrGhx{FR_ex5kb?4>)MBHZ)`i_+c)JNqt{J?myUfa9pEz?(p_Cyo ze-6wqz&)T0xbn8Gy-Y<-cchbuw8bn-1*+IexSN@xI0Dnz>TaCvY37VK+DZlLB?8g5 zX*ir-^V)hC+jPrg=MHfNSo_0)kemtn&w73={(BoYl-ugHxCJv zY8r!A6?0CY>fR@iT$-p?-k^q7wyfzQadc+n;bEWH_gbHaM}6MjPUm5cz}%@e^u06z za9iMBD|yu0|I)g24v)tUYNZ<|fR6^gUVz^MMTTa75_2hvNbIA7}O$ JP^6!Q$`AcKScCuo literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IRandomNumberGenerator$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IRandomNumberGenerator$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..c026595ec55f01402e3f3f780a6a36330f34cf0a GIT binary patch literal 1921 zcmd5-TW`}a6h1D6v|+F@HZB`5GX}I0N(2HSv1t;TxOD0m+70pOCf@3i*p=;;Zhs63 zBzWf!@rF1~R?4KZ_F+goGz<8hk zh1N=!;5;elZK=6YNr%TYQfW(|VhpD(tr`hW%`@tkx0;;BJW4Rnn6_B-f$ecR-_sN1 zsRu6gAWJ>yr#??(#SN9p(v;b#NiA~mZVR(J#-*dcZED~o2BR_iWe4ukh)GA^;PiJQ zR#8UnL5ut49@h|m9DOi1`q0Bgl6}Ou22Un7T@>uq3H$S}o+>1G_%H! zk@A}C2qRF|b7#e@fl!rS?^SQH1lI`s7@^gA5hw3p=KLX$|EJ!#6Pv27BmPpjLeBoh zM9v3jh?oxbWHxNx0c=IMjxhz8fmwV4+`!An^$6UAIs8`1#zmko4-0Vb7wBSLs{jB1 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IRandomNumberGenerator.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IRandomNumberGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..e2411a002400c5772240e1e51c72147bc685115f GIT binary patch literal 1370 zcmb_c-%k`V5S}8ick3yLpixjOVsaR>`{aud5<~oP1jX@3?4-=#$dx)nHECn^hoqY>db-vBrK+) z5GRJ5PN~$R^DdPlm%UtgW7F2Q(3vUT^@=vy*Qn73cLd`Mrc0Py=)-iYeT338sIAIe zY30`#Txl-vGZ=DF&0PL$S^^H^U*)Qp^>vl_1}#O=3|o+ZCip1~Z$6^tCUn3ii-B zu5m!>pKUJx0aI;TVG!?_o|X7Yh5hsYI7CQKf46(us{&iPubiR;FM_(tJK-2Cl<0%B zlw9ddhc^;4$}`ayd5==ewX`(aDd$o9H;Qhom7QY-jh3eCTUHxg1PcuIE^i_%jk-W5 z9vKllI5R1#szmUR!Q)f0o|!;l>kd+Rb9GXcyzy2!M@rcx4Y)}LG+St@0gO>6Ct#B7 zh^!|=Z~PT%A7HT^p8;0vF7{nHY43?5CaZ7LAy6@C8o)I${-N z)NWU~pKfBEe6i&^*IE?$;dttDUg5T^iqs|c6}Q<{tA#Ah(8ZV;GoRG(!Za0z)?|@y z2#FcpP`Z&~7kt`Y?m?^EyH3lI`n1U6c#l)L=c-nS8CL$$I_5(^3}oOGoFOop&9@pe ziE*QG2lE)wB+6^fA_BvCg`Ks|v~c^~!;~!xLtr_7sDv~}V4%cpay?R1mB4Ivx-$pu zqq$fV!bB5c##d_6iVDxkx-bIme(Kt_K{9BzpKqpkt{*NE_}K*=H8oC9p%cicf<*#M z!bafnKLxv0wiw0B1b!WN6pyjBu%=d3O-KBta6L1!hlE_KVbA4cq@)qXa%o=+u9=R? z+n9x%lw3CmjvEgq2|WA%wnB?q)aSts0u#-t)b_jJgpyhA!7Tz04iM@v@I9EuKJBQt zuSwhE;=!G+HC=nRD$awu1nzZrXNwpx)Jwt`oF{8IDGb~P0=@Wq1-Pb=7yEGU;cgc9 zJ^1#&LjQ+h|1)I1NiuEBK}g8=t#GEBiu$ii)y`2*WoR~G;P literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IReturnsNumber.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/IReturnsNumber.class new file mode 100644 index 0000000000000000000000000000000000000000..19af24b30c13fc7d28ed89cc67ade7e7e55ef3ec GIT binary patch literal 1820 zcmds2-A@!T5TEk3ckAIHh#vv9BIsevt`C|RAtZ{5XAUudBtG_b%UyA|y|mr);2$&5 zMBn|RjMH7t3rGw`dGVp!%52kEvhY zZgU#*C_xuv+F{Xq*5Y)o?{!dk9XPLp-0NWA^&E{AH&iN1Q)Z(!wTQ)g9rX1GmW~3) zN8nrxPKWH5opFywOgi``r#}O+iZW{VJKQh#vHpLvjV{+(#Qfhx>T;fP+g34kiCyEi zwq>=Dt$TDeVa6;MWw^3Pg`t^@`L2+d(OsqU6g%?i(TWXTAXPRp6bw91m? zSWxw6Dr+VTEB|Z*^PvRe6*v!70%OaE{W@K13_7$Rd&zZhwSm+YbZ{7m@SwKX=vV*mCrculVR3SaKt(kzc48qDc=Sgo1O5=n-%^>5_zU4& zo;p?xE>Z$Bo0+sC<#pK=Mqn&YTrcMn$Pk##`RIjtgXhX{jZ3Z>&JM&M?Xo08=;^wQ zlr+LvF6~Q!|8>;f$4KfDjq_^d#)Inw*8hI)&JU^>BOC}G+$6AYBHzwvi({@5ap3ah z!7a?riKf2{eV3X6sU9p4xPSVS{Ulb_g)!K>+t`(6i~zn3_!3va3mH<(((PcQ^Mr?n!1Uv7DG6L!%a)8tc(9sk!%}n0E_RqAu#hii?>#h1q}$nA z*S`4qnww%B)J1mfHQ3^69|2}>i&U691g2W;EtGXvM!XL51m+L5yr+~@4Y)|=mcLCE z*D~JW5e;S17ih1LDeWuSiFu;Gq+WBg$7#gF7+H#FpM~GCZB7>t^z(D#d`q045$7Kg zw@4$&HBF_V2{U1j8pPszedOo}mI{6A65p!myCHi`yLpd>EVb|*PM;cLBxTg>_qo?R zz^Z1Om3RV@!K4^9!#c^lR0@ZO)9|AQk!m*im(|q;-g}>=ZR;- zn5KM}j+LNR`-dNCVk1Ccb>az6O_p9F?Qtb+ez6V)77H==xarAg9KzS!Jdm0Ej}e8Moo3&?5yRLDDE|@Q^d)Y zXDsftW;;e+bpckLz*5s4MO3@3I=|aWJFI@TL3zMUE04Sz^lr?wzCBF9I|ZLy+pA>d zcdYdKUm@1gH%jj9JC)4p>?!qAbs|orEGO{)!kA-ZpU9fc`crV`sD@)0IHHwBn+NCN z(j1(F%LJ~p#>W^tc+9V1SNioJ>2S5laF($1j>O4eiz#8Bhks6+p3np~)+!y#a1N^P z3e&^phCnpb@W>R_u2^6Lt`hj!VVWx8^!b~D5+HAA`idPf!y@NYZaF3JQ#F=5bpv%mtsM)m);f(@>tAz+} z!drz1Zx| N#^(ld8=yx%{SOhSH_`wA literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ImplictBaseOfBase$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ImplictBaseOfBase$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..632ffea0cd380c7400394c3169e245a2dd5c0cec GIT binary patch literal 5865 zcmd^DOLH4V5biN1D+^;MCNYEn8H@o5!Y&ChA+~W9NhLv)j8lnm701zPY)#PasAfif z1UPWuz%QZ-s^HGQfeSZ^o?Qva(XKURZ|TB8`%>>W-CsX;y8rm+m)`(j1vWgGBJfbF zFo>9lgC}gC1zPT!1EzSuBKB0`LoGyLxHdWnSv%~unUN}}MV+P%Q4lmF2v5FD1D~>^O5J@9J7^=G+u8{Uv8`TXlNNDQI zN|g#tyK$56iWqs?#eeXcb=ziG+NYacZR|fNMOkc##SlZ_A;^@bvn%aLq>K4zE{jpg z6CIZW0gCX<~TTR5#8hy|h9w3lpetd7-GNh2bTol>#^MS&}iy0Lv! zi}!^VsMKe+mqNtvPE^&gPMkn3O?{ZqViV%Nlmu=gKm8hT^4Ow* zlM1IGbr-@UTpEl*k zva3RVU)UIsdQ!tN5D+BmDkH^{Mx(pX!A$j%^Ttul$J*h=J_tES-DcZ{!Xst}N%kXLr+CaA} z8E8=^+UxK}4%$Gss~Ko26YWiy%RxI?w}VWyC3q_bZJ^t7hHl?wqP+v}=AaF9t7M@4 tkbyQ0@1f_W;C;A;XMhjzS4OWB@Zm$a44>lt9LB_T_y|Yax8OFc{R>C0QQrUn literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ImplictBaseOfBase.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ImplictBaseOfBase.class new file mode 100644 index 0000000000000000000000000000000000000000..cac86d2ff43a39401aeb67a7716313d7d4f78a13 GIT binary patch literal 4250 zcmd^C-)|d55T0$*ob4LYrX)~W#5PT-UCP}HeIZdLT9sgwkhV!9@wmR*#9Qumt=&C0 zDdO)!0tw#vqY$%q7vjivvr0~V;o*F~z413Q-~8~*-~asnCjdNxFn~)0o*5lS851&k z%|O96c(=v>mE)|C6GU59|B2WAH2EVgBwd2wu-O7!1Z%~Rd>4?QFLEtgS zlBSCr?MbAM`{*u{XyiKsHv`DaogJ%%JUFicPfz!_K02=oS5adznjZGD@LU>G$=}e4 z7SQSb@+-|;1_ERpxv9?(uTZ{cbr*HpGxO?8 zu=*6vblp=$y<+vn-F4ck`?&#SgWFD-c@OE+lo_*L72xA3f4Q!i7VUSU^@cwn*6MSu z4v)NAW_|w5j8lCo&ZMj)@c+V?XJ((tnydN?aOP=-XBv2-&C0eGG~k0adtB7B>~H2zyKm_go#$9~83)fu&Bj1hOLI zQB|L7sHhxP2rO5MPQ7=Uf_^U2glhsX5TlkoYxPM9xz>Q21n#_hTf$|DKx;?kI_BRA z=jrlf>u?+qxb-rZ&i|Tbz?Sg>AsF*H_!)Sv`t{F~s$i$TqOLIhD z>Pa_63S)8h`(EIC9S@EOw0jbTi~hz<04oHxY9#}iu4oD19)aiefS>eKB=O`SfDVD{ zMP`i$Jb(uT?j7gxsqNYQb_YjbmWsD7!2)V|lFb0>2 zT^z&BJONy*ahC^}!wR?p^Y|R#(}U`?^#?S5T5SCW?Z5E!5?sSiCj)q0FHYRrz6duE zfWSwvglA1yhL5M>d@=>+>M;&#|Fl571-J3;w0ws5&+!7FcrBv-J9v5*Zo(?wzrg!f Pc-}(WFT;K4!k7O7rTB{x literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..71d5974aefde43fc389f59e2dd56611fb976d348 GIT binary patch literal 2667 zcmd^B-%k`V5S|_fcekE`C@Lyi5zUd9-I(Z$5E3C`Fd!x%#`r*b-5yum-EP`0KYaC% zGSNie{iBT2TY*E*utDz0m!>m2{W@Pe^KHNX`1}e_#ln87Z&4ZZ9B-myx&1oP!l-CRgp{i|m6)+q3B}!-n5ua~z1n(P&`|IQd4@D) z{5{(ebn<|@pHuf8b-zR1KcYTKLnRDNl%+AVyiF})iM8Q3){$PKcF3{na!=a9_8w~)AbEK z6q&y(mj435r(S8bw_l_LJn&$+4iy+7FxL1}xSUoEFJnu*%;Kid>kQ?`DV#zv*XI)_ss4pdn&>b-lrUG{eyy;Ub5vUwKY^IJq zY;qC8Tvntp_;OiC*)i}C@ZEyXEdnJNgdv;_;JgA=9BXJj>ev9@7x3PW)<408Z|E(- zMI47P#;qL1vEG?`a0xDVd}DB>3!#L*9N}sYgo&OA<8ZwT!R?eI+~|SO=z%Z*6S$@X Vx8Sy0i&z9GOu{(aL%WRD-Jh(6TFn3e literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..62e4357ce653ec9c9c007caab5d475f1d262b879 GIT binary patch literal 2516 zcmd5;TTc`*6h4KOVMi21@P=tL*P1`}>kC|wq z@BS#`=?u#yu3^I^@nJ6Qob&ZuzcasnfBOLdPoe5TAAyF^QJ69z!wt5{LZjC07p8g0 zQnsUT(+Ck-ZmbC-mPA>?tkPjkTCUew#A|6g;VH*u{9=2)VXS76T}YTQ({E67`khu= z+a8n%jO6eMlg)6svB4utU|?2AVdn@utJJ%m>mUkYJW*J|60yUqP;yDde5SfaptOK* z9+U|T@8iGJTIoSJPfD#1Qgfq{O&-%orEP)cqdIMC)j+$=bLy8@Tb#x`O3>+;wpsL< zH94K?*b@|S2wWV3JPyHr9HwZjxS>*6nlc-;s6{Nk)kg0QVd*Gv5e}S*L2t-@*$Hpa zh)Daeg*n`pmUCNAgUr>rN>B3O}AAl^JJHnzKj9#%?$ma2Iio_ojG1V{k zWZ?29*ILBWU|Jz zaO>U8l5Gh?Ag-T1G0zYfYjTSu-Coox-3tqDSE_$IL15y2Cap+$O>PP!(B^r^PC2Kd z$$q_)=9xjbMo51T?Ay^edGY_Bg@I97QJIeTqHr0n?8W%slQSO^SVlGJ*hv_Rb zLa57x_uv76T35Z}{E=YjmV_}lF;l0?qmS35xfuO?>=0D(R}YRjG^B6uGAHLcF>$ofp)bE+H4oJ5?n`}KDYrB a_yo9#myhQWxCN8=t&*=xKw%1|;r<`)P&Ft3 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceImplementedByAbstractClass.class new file mode 100644 index 0000000000000000000000000000000000000000..cfee320310d572dff13ace3695e1b64651158f01 GIT binary patch literal 2253 zcmcImTTc`*6h7s)7ZGp;74cFKbRlNu$rm9cKm^x-7(t9rrrRmI#hG@~c2?kznP{T# z{wU+=4A+RVL3o($^vvnk^PQgab$|Z)`W*nC!At?V2)wt3hY6D^++l4NTD|Q)Gb2Kl zuzih2D`n_}bvEQI=4s5FHepRUVYV3;wWJk`MBp@9+*_zyXBc-&F|)P+Jp_g_%$TW0 zxL)58+z}|w@mMP9<_UCHr?&|7Ea^xTphRHs*!zVs+7#g$>1n=GMpzxUMMSwyS`s6W zTG5u#b==xMr{&USQ_x887~_s;i}6paA?U;*l^~}Qcq&0gB{-%sK_e|JRoc;nIo_lW zvBYi*V?Bjsc;J&1_z;86kjo|Syh}M#9=(9M6m9$*)dRX=$n=u`Ly{+r}^W&eGVO^bY7+YMuXrUX&@HjvV*|WKQm! zh&l**!x^a>7sJU9{zOn`^ZcJs%cYJ2TyG0wWF#)egPtgdj<)NtW-iz5@;Lf-O@wRe zi29yf5w4okeo8axn9FDLXOye&PTx1Q0|g3RA^7AQqj&c@DSSbwWXDqlm)MYnR;6S_p%J^hM72K#&AU_VHoP}EP>uOi&NZhq^5j>OY88Gc`5O` z;mth){WXQoS-A+jYbb$_SDY|BpM%sD;1PlPRc&`%wV3+jNdX?8x=-_BEI^gO)M2Ba zy0rb$4T0qt%l*7W``4tksJ5HfK(>zn-oW@r0Pwd6z0imA0?uX*tmSV|{7@->f&L$8 z?Sdiv^*(^ljm+Y2_zK*__Yw@l$eHVJow0u4a6RsNCqo*AyEuCEF&yvX1MmQ!3hw(5 Wt>Z8X6F5%dIF0rq#@G#0@Z>km1l9Tg literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Foo.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Foo.class new file mode 100644 index 0000000000000000000000000000000000000000..41444d9971d07de102ef80e2f7f5fa77a3152a4b GIT binary patch literal 2263 zcmdT_ZBJ7%6h4KGjq3#D#kZkU;>%FnO^n7w2#FFw%s?YZVvHZUdplOVx1DY81pb(b zCi>m){vG4#9dm$FFhLTtbhm9zpYxoj=bV21{_!&a+=JUW=ppdh=)jMekp3oXGT*40 zea|%aS;VKFz2bQ(lS$jyAjjN!&#P$~x* z0z)Zo#N>wmth&hqOQ3I7NMYv)+%HwSI(&*=TgK>0SivH(!>mwpS%rLNYMnr49%nh| zCotH-f2_6Ac{oLSGcTp)Mnz2?(m=%xfxPiJZD>`Ecx)a}uYax1X~=^JqYWuW@Rn_G zI@#t^ZV6C!0+dq$${hj9M-X6=hKd_1m8CJWL7iIk$F~}&z&?LEC_DMfE{yW=dH4Dq z;1&&-bQG$b{uIP2%BbCLaIe4Z@4qx_GA$Th=O4p3nhs8@Lo{&d5_4NuA$2*i$ZcuW zY9TkKX`1r0t<~HV6^14<gWCJwl__D*89FUdejBaG$JJ`o6}gZg$3ZtQ!GT4j)f zDFPGiM!4_Y>pVj_xJBU3Ax2%^DguRNVGMSOHLQOFR{$yE>kE*x4Jn1#YAZTm~*9P!CL`^gNtVTutF#rGn literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Hello$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Hello$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..885ba5dade1a6bd0055f464f653776b2472e8627 GIT binary patch literal 3267 zcmeHJOK%i85H3$1lj+S82(RUBLO?ST>J}1Q2;#7aM^Jc3gh(6^@^sf^4Bhs~b|(R} zr~Oe#Ano4wCxNuuayyVgn$b2SAP!tww!8dQeO2YE`sd%be*wT1xX^?K1GFYh3L#bU zTx^KM>Ym#a1`|<;SDFs3l!-&@Y?6vREpy?tNtTsE(-SE!tNWrrJE)dvUS?=-FnG~`09Cl9*MF?9?kpY^n6Fu$_%>wZ~u(JV2Tz9yA)*BMN- zJ8L9*Luc58Ul`2o2;VeDn;H0(O}&4t3|gIUV8&Bj3?x}9wc-P#yEzv2Dvw&LedHOY zIq}Ol+5AGRBVYJPIS!O#PdTnA$2*kc8k84!rqObx9WR7S``nQ}+!_$m&-9rz_70Cd zjd<_0M=cMy#Z#fY30>r$9O5(=+`SxN)cUCJf5bf0?nRc1K`vA2xGe{0C@#u6Q>K(c zJY+z-!=>e=%CILDIjKi~Xf4Xz4NJ%TUTK~GLsDEQ@6`Z21R416-sq5kUxyQNY{;n5 zJcF1I2v@kttEbZLy#9k1o~9(PVS&n32_#h?jr18Ly5v2PQg)&1>nvQ0ExKD;w}aK4 z-8dm?)uR4j1C5axew~N-P%i$6>c%8~?T1tIebp4(J74?Sx1Be>z}-gIe&mc)>lb-d zv9E<-Tp#fueHp8AwaU}@E?r-IX!O?0TFJI|6vl-nf(Yhjp$YpL9BvP_l0b0DcaOOh zsvLphs-TA8dyb~^z9x+H`|ZO?*O!*T`pS3diqzzqo6_~^{W5qxYxen1SCI z{8^)ejtRjRKk6|!5re6&pBNa3_BSTKGy^9Y`%r_le>y))I?WDaqV~nn-@B4ftAmU& zo02Vhq)U_HE$ItF6v~^IW-z;~6q@Z>wh3n$JpHC6fhxhLQF-yRQ8`c~i|$Elsa~(r z)L`Kf&|FMoJc9;I!8ENVXx)Sv`nG6yx!MCn?;v_IKl=vu{Y|G0I6&WNlJPg^={sAk zBRB|$s#Z^kqJ^^YHa27r&?y$F^V46Mo0 zQb?5^iX)L)z3(0fgQ+ORLrov8l&M4OY?_H8s|w+?NxRCS*%ujh)g4iy9oEyVsB*Mh zg|HTFdK-&EuYW=N*Y6sAd=f!}!KK5Sp+QxD-->n8KX@To@N(*|56#Wx;Vm|XSy6pa)P$=q0#*U zOZy3rTe}0~Ic5d9o^x{N8*zYqZHy-gY$TqIq-GQFieV>~@Ds%PW=RzEnigKK-G&s0ueNo$&3-I{$~HxKN(epm<7U@c-qgZ)Pu=kOD9YzowDKZBSL2v_)k*Qco6`Sv?rdN(Dph9xRjCy-PFG}32~=o5P) zqwGRA(0SOFSai3vZU@wzvyc$C7IJ;(2#t|BJ|07SDi{Bc=H>==!Gm+YV&})TuYIGu z@dfU4bnW}jNOf?7*Twv12*&1&1L@0HovU@8CX;HvP_mt$3-dw~Lld4^h70g4gDdTx z7fb8z6CA9&$4ZYXM{sdhP(xs_+S63t_k@vtJ^I*i18Er?_MTM3+@RigP@iB1m)o5w z@Bu9Szjm)uPL|Y$kEE4^^;2Kp>+VKSYsY_fSHG;PpTpyRWQ&&g7HT3fcIt)H|gwTu|UIgzl*qOQS z@$aQXSxYTPb$S_|(3gQw_L3^X>VTwJ7eM5_;Jy+rT$Cun}P8vg*xztCz4R%rAx zK+h!_m+N^9&%tW_?RmINQddS&FVK6e&F=}?UYwzAbEdYd@bVmO6KvOJXxo~htpTqR hf+ctjuG1TU(-RYV2Cu^#a20OU>jtdDThNAg{scZa?nVFr literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Hello.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceIncludesClasses/Hello.class new file mode 100644 index 0000000000000000000000000000000000000000..a070a291d16954f38c02ae771776c4dce24d877a GIT binary patch literal 2676 zcmd5;&2JPp6n~~kW_L&lgrFtm%xsvOP-z z;_s@|O7z}8i9^-r@ut~G2}Dh(ICy9M{QN$C@5_Jv{rfur_yKMvaDu@LXJuXqrSq3! zBywjq{3~HG7nOKzi0G8cJv#4lDN0$F!W*0Sv`4!kB=+<}QK1_)e`Q%0=BFrd`Ljo#m05r@3vOh`r#)>4fm>V(9ZcvW{}&K%xZr+! zh-rIA-$&SjsH3y=s$r?5^4!%!v=kTZysafA2#;~@bh&c8)&*`TO(1R13H=v!=_k1} z{-Aa~oDdfmI-nW_Pl$~EAKmDOb=42Xeh|h3@QFD#VbuP9Mz#r1Su-3K=B&gr1O;UFZjx&CN`)~W*k8$x^{ z7e7aJ2L|?#g>$@Y$A@+3edD|d4elQL&YHJMZ{FlhKVFH!xV29~hBnsZYLlngFLZtB zu{B%Uhf22NbK#)Sq|kydXW8y4~>P+YT(bCp%Oh^4r63)m0C#jbzRV8U@*UG zsLwwWR)zhTIJ4Q56@#xj-3dYQ;xg%pWyfHTp7C+elk{s<7HAnLlJH4K=+aM7)p85Y zGr02MK}d6uLAqvYEAg%h{--gl0WAg>p48f_ipKUxIYoHf4#T7wrH;YH28yk`X^jmr zzlR#Fp!P(dOpioalf;Fd4lPhQPfhH;qH`+;+YDxVnwZDqKY>LC_`d){(HKLNz%>Sg zPpfpdJ_y_0O#+=g51p7R30!AzZKrAMc~ga}Yt;Hhsb0rSoqeF3qmo^x!Qo~Y(9?+C zX#i7H0Mjr-`-FDa$JF!>Xg!}#e}maSiFyJ~({JDbT4x$cczVslSrR~b4huwU!`JZ5 zzH-j(Bj@Cf9Mb-6Bk=-Uq;Jr2iN2R<0dQLLr2h(0uflm)qVIR~y+QOA+4?=L?mxIx BW)1)V literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceOnlyInterface/Hello$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceOnlyInterface/Hello$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..240a40824f6b73e4a3338a6558d4f6b50655cc93 GIT binary patch literal 3253 zcmeHJTW=IM6h7WuHaiUj($Y3is0jh>O4W=iwJ#0I1BgJXgdmYds(3)&nX_5LjJ>iw zxwPVmA62Q9+IM~sFGz^vF(eylS8T{dJoIH`dyYS!@7!O#{rg`4_!(~1p~fJ!CQS+< zRq{-1i^S@V+Yts6QHVb@9aDH>3bc{$8^dWXxZCSt)cEk)N5nkT@kLgOUM^GVxGj5V$S2A=Q>GL= zJb1s^;?nX`W!RC5Ow^%2v=(LV`lVyOR$Ax(kQ5in+cW_8K?eTES2_gWr{RS7>Qibk z&miUBe5C54kv@Jzo2(~NiY;_qorP<$MYpVVGicp9 zjuE29NYvN2(HNQGr&);i#p37q+>pQ@IdMkJuMx#g&ep!}y^kAT-0q`mK6XZ`tsnT^ zTv&TMIAdu*Li!?B#cCC&@vn4!;gQk1dm{zg$x#^Qng}A8nT9%CU~s9~*G2-tMc+AQ zR;h9XiW`EOf$uk(O8cfT((m6Nj=Qe33~==f`XRNq`i^v6%3cP0{dxyI7h7kd#T0zY z;N=LNbBOtmoX|sXA_fy}KPfPH+B{Y2i&O9&V{b;F?33pIVop=T5T6~{_a|2jM(Q0y z)TU629_!MixGa4sh(clW(hR0oltNS0M6`9d&fv)@76YmQ`{VJ#q478nBz@MTwN$4! zXj-uFBhV~NgFAy7Ou!_q#%NuKDf%{O_fxe8i2i}-_u1*c;QW7dT7!%9og^85bC$l- z)jEPN;j8NG5`5ihb8Gvwe0Kyntr8_ma2H*R;gvEfv NJj}sO+KC>8(! literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceOnlyInterface/Hello$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceInNamespaceOnlyInterface/Hello$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..6396777e1ee04ad0659ababd9780e59ac6b01466 GIT binary patch literal 3106 zcmd5;-EJF26h0H&uDt|OLJO1v9YR`cD7ylIkVq8?MU)yj4Wc0u;%dA;j;HL-STnO} zQp6?Cgai`Y^B%kcmxwbvaqOUV8#STr#qQ3`p5O2M&7c4L`a1x80v|-Mz+h-imKH*) z^q$xgsntVwUl>e9As%Qtv{I%Ht+Qz+@~q5-(3BT8VoK}DsrKA)2;qJ%p8OBH>Hwpox!K=Uaf8~A`p{S>7>Zz1L34r zn|gq2ogD^^4O&IeVz4xo|AjHyG~s!6?(c7vL96pU9PmsRV@WO$J0Ba}&#|zd@wl}; zLO#GOC&vezocTfQB43%NYR~6Lm{P+_uyql6x!vdA7(nqQh8tL;#^a(wYQEs6d z=|NyiEV^4-w}aK4(|{1SPUQO59vUMD_;?8MnOuAp)y)m;2@B_J$<7XI-}esl#y7Vw z(Y5b7Bh~H=zL5)SZ-!v3*A%30VpXnId74Z+{fUz8>|B@^ni!h!!Xli57a3e?_dHoz zO`hOjH93}g)H#BS+k%DxgXNy4*1jW*^!vlZh8s!CVAOjuqjHU=;%-&H3@)}iGo}Yq z>Hn2)O66oh<9AP5NtS-@yL&a)$k4bqfp@J5uQB-R1QT$=ar*jwS~*3ig|7FXcprk+ z*=fQX41Rv1SjG?YjGi^j@(4N%K6(UE&CM=?_Ze)~@;&Zt zlpx%c)>3!drWtGDLtyY6-GqVO4QdqUX&=$qEJTju{He?D|eTt?VSnXtaw&8OppX233~#vLes7Fv zd*9o?s0CAJSLs#bQc2~xtH)^ROtka1mXsPio^hwkmE*N8aG*3%G@upwFY40IYG?d$ z?R;1vEiQE6G#Z{U8S$Sz=qGj655c~c#uNC7`85;N@i?PeI1sM!1#d1vr~B$>UImzn zSi=gnZ_-EU5n2`UNA!t3At|@ek4zD_We)uVV>&VF?pa7k+oyuQH9>1tf&YymK9h@Y zqq`Fi_LLXreAUj6>rnTmc@v7;L-d_(Z3sgmvdAe?kGDYW3-MR*UE7%Xf|8^%g!GwA0{Ly1V&Lkn5jq!JRb?g;7%43;+y z)%d5vsxY4l7lzHXV(?+7J7XwrTqi&A+A%odXSy8xB>h^I1zH9}vhW6*=i1lN(RvH6 zFu4Bu7DyeCLAq^fEAfE}=+k(pfhz`Azpu4d6}9V$a*EjaDzuWOi8=Q1#gTVZ*t$(cUzF-)%+bZi$~n5MJJd4V0t0#w z(c27Qj#7Uf7HFQ(?ABD8{syfdm(yQh@eh(-fJ^inbb!YDjU+s{mf-_3Kp74zBx}QE z_~=+WA0K1q;=Ud7{z+r;DqN#)@bW2rKcfM_X)Kff>mGK!c4Tb`wv?P2ANZO^WU8!Yls? zB#_{pAB8wh=-NTbvg-qyA|xcq=(`7kqDfQA^>k5h%^IrQ*3s{4x?-l|u8DT;G)Ng`OtRQ=V8M zkevx!o`WJnw!eQOWgzo#mgGJy`;x1`+u$yBf<{xI)*|p}QwCL!H`F6)6_)Cpy4>-Q zt4o{AdB@f`9c|IKWBRtCZ%6d)HvLiR23%1;(6qs{Q>PlS_*N4+?!uCeZ47H0743A$ zR>25wQHS{kzRKwi5gkxQ^>&k6g%;KxVg~9&L}nXJPdGwT6{07g$$h0|=%A<2_}7;w zs8BTYU0xGD+Ng#r_|8I4cS_rIK2+MQpcG}kF=`Cl0U4X-mZ(4QfHNv$tR`Q(b?KW zLxbyj;8K&dpK)D||Mp!v<1wYC;?Z&mBW|gB?m~ z6Z@XmfAlgUN#$cvAP>U?KBj1Ly2SdvGh!DUi@^DoC3dxIy;ai)5?Clt9Hjv!^KhMH z-lrgbS{kv-+PnUCikz0lsP|6jG0@Ge#UPXpe=1DI8R=FgOqdWT&iX!=QO)5h2e$~k zIKnJMAh&bMy1na^75_loe_kksr>iBbXbSEF9-8pHm%*zS`l7d7^vvQ)9twE3aP|R8 z5qw%-q5nCmCg;#z_Z_Yx3#;0EfQ0SY&b{)k0j6vki}?%>$iY5W)1g7I(w literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithProperties$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithProperties$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..501e0ac8d134259580a0d0f6cba725ed757a7e77 GIT binary patch literal 3624 zcmeHKZEw>s5I&DW+AtW5_t%**pyMSG2!zA{2_aqz9Ybtv@X<@W)sQ%q?Tn4@{3Vb; zg75qxz9G)ZN;{E4w84ZBs?x;H`MJBt=ex`2ukSwsz!kXQzyN_+tpY!0Li#V*67zMk zU|uoBeHOFV2~KJue8aWTe!!w2jhIQ4-;jo@1s3o*VOoz>(&owtuE!pr^caqpR~)Di z*p)#>OfLFU^DlT{2yDA9q%b!LT&*_?byb$ zFx17rqg0}*u$?$>pGw7b5-stN21(o&XfiIRZI#SNJl5B!TbpTd8uB1QM?>0X!ArKt z>1f9uFZbQEzI&PPUf1_g8YWy*nHU-~6SSy7EWX@E@77?cz_YA+)9DOs}*@CsS?g8|=cP4R2mC?OZur>c~h8&hCIxQCcxu1nd` zCsN$nMhv7q5xX%3Q%hVa5u&$0Jr;eG^x9F%pMP6jAC^jIm6FM)q}cD{+Mb4(n^qE1 zo3-z8Q_pw%JiQ$;t*_^!n+2)J=5L!>X`iCzb&Fc56&p{8 zf6uAGom{1KP6@+1oDS=p=bp(b93}8(Q)%j#G;#Z;lT-!#uCTFqv|j?T>oKSs($;IC z4VUJ=;EJiBwL)O9AthH?mg3rhQ34NtW89*R-TdXisWnY`PO}4N2#j=6_L|1uF3p=b z2gV6p`h`$I$L_#60yhfRmHnzfiYA5D*o@6!n$~a;2yDSG7=Q}?w!$_XJ2<+Gvjcc{ zKS1^Qu=@@MKjCNqhVb9Y0A9QBe=vJ?VK)qCb9-PfO6^;f+K=}Rnq8Bl9VkGXDnvW9 zPPCaqw8OBok8NE~j}+MUya25N$IzbvI1VFt2cUSl$OVBDa1su|`D|Q)F*pr%IQtE1 CH;NDd literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithProperties.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithProperties.class new file mode 100644 index 0000000000000000000000000000000000000000..168ad83f3711aa9fd88505b619981ae64a9de7ee GIT binary patch literal 3094 zcmeHJ-EY${5I+N3+E5r2#y7$n13Ey-6EAE+0>npQFvP|t9^K@&8WN|nowD(Vfdmq~ z^G6}hNy|F1Ld6CTh=G%t}r-oH;d7ODuanF?R#2hx&jB8_wI$#XtJb>F^{seBgv}F6z}M) zm0)Uaa=*IVMjm67kgqZCi0HLgM?T$mKPcS~oclrHez4{KG>())Vf1A*2gR0?bukS5r7YJG-j|MnbHn1-G05QT^ITb(VpDack;Kt$ z*JKo}k)h26CmUgLb%ii|fC{ysre==8SXU%D*_do9S97GXsO&>Y>pE(0GN?5bDHkuz zHFDDomi_=S47?si9$aFuvX>^d9y!svHSwUattl-d!-J~~F7=b#wr?`R=$ zZE_usfg6wa#z~lEEdnd|G-t`KOpk9_ zE#&^Bm>)y2)m-e37M73X7B34a>=goY?apmfa#ba~3C|$pshVqAE4>7(AVU>4^2fW00Pvvm0GuT@^%pd_S5sl~&?+!GBhP+e%~3DfYMDaV~zTtcYh822EzeU(f_3=Ox}m1=u$bt(~G;{2d>7MIhp zom{HmEH1B4!R`UqS|sS+f6YfFs~ESV5@C;7U5VL2t3Ep_x$((XSITm|r&vX_`nYyk z?Udm4ai>)eCthoR$T{8;HDtRoKySrF>Q2>Po#iRa*!u_8N z&fC5)1issuWfz0pM)MFG9V`q8=y8L+fm@x~s$YUv3H)54T`3{_p^w-SoB*BRc=+lc z{n-R1BOlJ1k~eCj#9RDm)eBN`VMNJ9FS^im9Wa4!+Or9cttHqX^LHx*h08Hd3-6Og ze|l9tzFErlLF+6bQ=fwRPT8l0clkX^eJodsn#ZiJEW`-}x71L_{JL<5@8;AZ)BzD# z-j(MNIjem#g$VQ^5W+%)H(`CuhEpEiDzM>` g0)#o(#FaPTZFt8qfLH|D@Gf!_;r}Aeya(_94Kd(>VE_OC literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithPropertiesExtension$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/InterfaceWithPropertiesExtension$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..6fe87dac084f7c18bc33538a00db65671241cbac GIT binary patch literal 5148 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 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JSObjectLiteralToNative.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JSObjectLiteralToNative.class new file mode 100644 index 0000000000000000000000000000000000000000..1f77f87fb2880148d4c20bb7620e46381e92601e GIT binary patch literal 1965 zcmdT_TTc@~6h2c5ZP#)U#Tyt0yp_c4CPrf-ghYubSTK=F;^TC8N(Xmm>db5fp8ZcI zn&`W~!{1>%vjq#uf+g`mA7*wgXTEd!&N=)2=jX2g@DOSxC=hsQbQmN|$Y6(cSzuJl zeqfphEMfZ!4~-Ck<;I#IWO10r%qktMZN6&m@X*$U<(kC}wZW|D@)8sYOk_AQliNX0 zh``9AkisqzcvP$BDp*4;J>g&#B?XJcJ|Zf)t|GoLzeS+9jH?n<2#ojfpJ}ah8P1Wy z$2U@Qqv9@)XsD8oKs)g{?P%4Ed14+@uhM998u2hj?;_e^;XAg?>D-|`e$QdwIqYW+ z`+bM!Xr#EIQdycX8@8!MEWX>p5FEqOq3=TJI}`oEkiCi%-lZXv4!+6hZ%3@6jM}{p z_bP{2|D{-$X~B?&Q{6cAk{$_#qcP#Ots?5UT4r%v+q7E9?R#`NX2vX@ke%7((mWN0 zrZVC!A(6Y5(ixd9%=CnZgPP_+8Ahux3}XbQYW04e_RP!jc)X5kH`1iZb;HGkz+_!v zqHP_-=-{wu+rki7um8pBTp%!1bG0<8xlOe^C|&|9wfX$A9JKDU$S#!OGJzih6yku% z{O=M?z}r-*4*80349=X8H(47XF#S4}RwR5?c7+kh`4d;^S${%`XR3oJ<<3y>EL`A7HWvKODV)CuZP)Q?<<Z g!WGn7fU9uLX~)$xey`)8H~{YAD5H0?a1(C-0s&cJpa1{> literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JSObjectLiteralToNativeClass.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JSObjectLiteralToNativeClass.class new file mode 100644 index 0000000000000000000000000000000000000000..3234a51b7fe86c742ac5e5a6afc7877287513dea GIT binary patch literal 2721 zcmdT`T~8B16unbQTUG=`!4FhMG^X{VtEe#%W1>V6QYu{GGp?PC2%AL z3z@9@NhE>XJt2j?PvB0mlKPaV_^2e@J^j zqPpxPcI2#h`x#$e}P!=7&7 zJRos=wE@UM7JE+)*Lhss!rctsy)RIBJ>h+V(QmlQz<3-<@DrKi=P2GW3XZ}=yf+NT zx)9>u{t)3fOr|1CrEnNah3uK)Vq7b2y!X ikVR))zGvY=oZk#w#QP<@N_YXx;pL%Ym*Fau;rb8Pm?N_Q literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JavaReservedWords.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/JavaReservedWords.class new file mode 100644 index 0000000000000000000000000000000000000000..05242d66f68c80aa8a64968fdb910d70b33809c8 GIT binary patch literal 10895 zcmeI%yOR_}7y$5|yM1$T$WuL(0aWe;ca?`Ahaets+;M<%=TV4?y)(VL4YS>AchBA( z1_lNO1_lNO1O^5M1_lOHNtFZ!R%u{hU|^Mjk$;8d*S)|2esI^8RTfnf>`rfQ&u_YW zdZuT-{_(GGzaxa~CA3KT0&+~NsMe-j)GpC3t!ddXb5yY!ZPP0fGBxKl!?e-0h$c~* zP$N}s5{jN>nyD^}&q)>QBFP10wG$F5nzb|aODr-0DIDa2n?nKFH#~*Xli>FX*CwDO zrwPA84VU7SjM?bOY(R2jkSdaLKn556V@gR?A}fORf4(6U(=vgYgpq7_IMfh!4?9ZM z6V}!T!b*9j#lo0H3A8H?J2bjXn=IUVt3K6UQ>(VARoB$&VpF$Sia7}+YK=?q@h{puuA!s^-vb;QpG8ph6gsI zcYfN;v}7FGlQ2e;WO&*rE}A>Tv4m=Ua8~m8&`8L2n2MM+xPZ=YNafCk?Wb_^-Vs?T z+kKYkH9Ih}17}^G4X*5R%5EUpEfbxAvq>VGkFzI`?3pWj%Cv8K*(8xo67Iz`n-;Ta zF`E{%Y4KlAi_3`5WJU0x;6v6gHqN<3ByQ;<6;dKA2S}c*3ds85DZ4|>#hQEJD;Fys zoPx;U>9k#EYR1ML1F~jHLNIssW*qWnX3n&@4#@b_e-is14M_j6jZ~LuT^mIsbFoA= z1mx;6Bh&v!05Tv&2&*z>E(WAjmoi~gK(bI*j9!LBzP@0X-9}W~Z6UJ3Z9tEmMx9FkGazcnM;(G)-)Fe=Om<7|RsS2c+^Wabli{v~7#BdBa5Ps0Qu*SAe@J zP3)g8kt{&6&`2b;U=HHGu*o;2v2s6e!1oH??m)Dk31gum{F1J1D>zh+iik;DD#wKt zDzIUyK_ge6M2e=}N5Hy4*XHB|n}bbWq=~D;%>@Id^Qr9sRSYI%15y0--fyVL3 zrW7-&a$TugwhAQziyucHJQC~@#nM+a;LsG~4pWA4#v{|{z#$7d?J(OTMLoxRCuyZ# z5K&7>!LP6w{>j_%Zi^bov~4T8gw3kJfEAiU$GLLKoxYq=w#)Nfh@iu^+?94w#ht!V zlbLfZNC#xy@W?-}!V)>NtoAN_y+e2F+sCR*%Tz_|xI6HM$$MjUZrLRuLuXSMf^9Y- zx?FP@Z%6FPidzqY%YBop?R?EGx46vOI1^04360?z&Ua~&LbHbMzfc9G3T+vuw)Opu z_XOOCCIk$7%{7c+bAkh=qSiu@T)1mBtapbhlD7l0`PO>QT?=fBt6)U}9lmRcLda5C zKn6~6tzpSz2A<9}*+QU-u*^ruev*TmW&wT|;nyC>?SpOQIw_rBQ@KV4ZoscTG6>(c z41v#T_#SZS3VDRAad~;N_71_8^A*~TY(#~}JcJ=sc-%wS zj0!^@!ZuXc%^t#TR0utUeWO>(JnbQzM1^NOgfpnH-9wm0g<%ij94d@>2p3S{Sr6eND(vtOB2?JvAv96pIS=77 zDpWlLi3&9jL8HR+9>N?dyx<|cj|#gygbz?*w}T|{@S=zC2`cRK z5I#kP{T{++sPK}9a1|8}cnF`P!l;Mv1u7i8kMJ_`EcYcU9QF{tLWNg6gs)NIh==eE zD!l3;TtkI158*m09Q6=xpu#Z^;d@j#?jihu3gaHaPpELhL--jLCOm{+P+`(T_!SjS zdI-Ov!W21$zNwu?uFc<3;We`A4q@?a5flDEgdBMt-Vgi8Su$LA6$UA=n`r?)0 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Multiply.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Multiply.class new file mode 100644 index 0000000000000000000000000000000000000000..6fe2ca3d84d2d2626c65db2b64bd05d4a3a91a08 GIT binary patch literal 4013 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 BooE06 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/MutableObjectLiteral.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/MutableObjectLiteral.class new file mode 100644 index 0000000000000000000000000000000000000000..26a4d0c92d5fe525c4bbea8c9e7bfab41f6e89f5 GIT binary patch literal 2440 zcmd5;-A@xi5TE7i+5-ivs0h&oL0dF;Pre8tQKEn;LIg>C+}iQY4Z#RDwsw`XzOX zy9b|qzKT9LiiT3Dbs*T-26lKzSEGO=u%b+_|6s=CFV6x?cZr9{ZDW(VzvnE&y(OTx3~@a{1SdW7}Q*S506+#Dn!wdG@t zn{w{{=X5n$ z*bVe4!l|Vq3b`V%i`ag(q50Q2>rw&k6PW#bGr?X$z}-nw74Wyhnl;t+@~lq?On*qF z5i#G8O`!!^{mRz)tUGA}Gnu(ZepdW5p})o@c1G+gO9Y0SxnCwXq^(Xu8!pYdz zz+a029JexweWR4%HWFZj!Z^x`FbQ|N^4#mfGur0C)2A}V2QZDZJ!J;xhd2Np;V9wx X6s2>BdyMk}&Wk87pss`P1j>H^-X;$m literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Negate.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Negate.class new file mode 100644 index 0000000000000000000000000000000000000000..3e43b267fb748e5ab1ee4017fa7aa2788ac7e548 GIT binary patch literal 3495 zcmeHKTTc`*6h1|kSw<8@yn6f72RnH5UTsfbUFEfeUT!I1~O1p3$UA8M_15e}2Wx93uGqvAG? zXsD8=K(%l?ZE97Gd15B1-@DY{G~!{5#zeHq!dI-$>1aova%NxI*;h{OE3ex(N+ZP$ zmCDkD*|0$^V)2zGTDJj9hh^uvvQx3VJ7mAt39rzQNe5r$^rsb6eFyqe>!ZGKp2bFD?hb9T{RLgB)-gNS2V!fiuE)X`~%#c^rTY9Z_6bS7rT zOlPzEV^kR0k`b>7iA1U?oifYCoMtJtrM|zabf9^b-3LBTFOwbExo>QF%xsY~vXATU@_c#kiyT^ehP-L@eNf$7TL zYuyxqi7l$xrs^1rYOu`WR#wW2HLO5ycpMWLDvfQngTU~!mb4<_v$8FWKr z)Y`9fA~;oqGX%cwqV{!m>_CnG?`|XD)s>2>s~E~c1D&P_6s^iaj>9^)sb_!pWyS$? z5GC;CUpi=?lLG0ms9HMYkA!3U;jC(;4G4jelw2!8+FGRa2_AFFHMVLI^0&}-oJ6{9 z-ISqJPokoh!#-4dEivk2_b@*0)`@qkJH^L9o(I%Gt)}>Vq``;X?M&~UJ!kIc_a7fV0l+LcX-E)QG1_$kCZw~=n#?h(YTq%< z9Tu>Cg_}kQ$8uwh<1*iE_{=KptSgU~Et4M8UP)9m)2%cl30#gad?t6Cjmj=}ErHa$ zkisqycv2|Eg1^8ow2hrrv=q!2`^*X@*YG2AQ`-cROZY1dSpowc{AXG#oqf@oG&c<)iw4{5{NnUh*E8KR?$2rJAUmkj)pTKaT)TuP>u!<_t zKnX)?y%AKn-U_3dz+g#Xsn|Y<@`KH!tqDV5we*i_>l}feLRbm&u5Q(>D%aS|>|+8$ zg{ePzX5c!3ucxSqXOHQwh6{mQ)ogO+EeoG#;3k1@=OU{6iAtcqqpXZ&f7aO3L`MF7Q==ZwQRuJ<~I<3^!WJ#tx|#V8X=9I>RX8!zA9ZMjWCu=`&=NH zc567qOdT0w+Nqz02LvV#+whUes588z;UR&U6O3Xe98BspVGOphEo@K*ZUa)p`3xWh zNvuXGT&HpM2zL|s%zcE+>%rW6$bZIF0tO;Wf_G$&_dGt)3a-FlwATw)e?y4=J0rpn z496l|i{UUF%VFdggc~sk%#~{RUxEqTwb_~LJ42S6$gd|Mhc_x6Ohr;tsz$8BJ S;B^l#fFfQQ^icus!}L#;)@`By literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefined.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefined.class new file mode 100644 index 0000000000000000000000000000000000000000..2e55bba63127fbfbaf11ed9e4cc94939b830e288 GIT binary patch literal 4345 zcmd55NAq;eleL9pGHQQ&{c8;Uc-{Z0Km z^m$W++|NUfz?m2>U}4LBvipL2hQRzi5ejpkz@1Vpb)9c;v1GDa#hHQy;w3XehIQ%l zjq(nG+!j9Np-5n9fd7?JQWfAWGGBilDz0VF<39Cdrz?;yeonhe?gqT0?^37OXmjdw zFF=t#?K1B>*5Y)%&!>{;u2|ibSa)Thd!71{YZ^*JJIr`(Y7mR>by3|BEag?KMJtwK zB^$C+w3GL!$3hFg%juyIBPpY1zssFsAL~t=X8BLxl|^C(n2A>CF(nvo_^}2{ES|#n zb^Jk3vZ?>8oJlU1VLx`Hz;HX(amSz}(b(apEq!W3Zi@v$Y1=3fwr^%YZai=-5AOK0191Sb9@%g%L3ixf$8bWN-h| zevYx^a7ax@jROUEdjaNPk-)i9&4RjdK}$r$1!<{<74LD>+2yKXQx1XUn#78+bC7}# z26Lt@G=WBK`qg%W!1WYzLv)jp8q>Y{EDDY2@M_o-S|H!2OfmF6t~PDmiK`{@T#dip zbK{tf2jh}&1>$l`Ez#q3epv5EtaG?r0nQWnDMLw~&UR%9^fA8U5ST5McM5Qkz|R>7 zkGT2iWGw<~BO6f-web07*l)P%WBRNU_Hz%IVdy;tpag!*V4YLUrUcISxDw6%r%HCY zGW*p*TS{Q1#m!b5TT=Aih8*(Wv!(J-yc~o#hQVmG3F9B>g)`UtN= zX$9Uppp+*gga&Z$rzkv^s&EA^3=y)HNF=SMAY4dASc4CS5C$ABr68=OB3wQJhxJs1 zb-02?xr*%VZVqqKK+&}nKG#ywuEXMF6PHrpZlu8F;0Dr~fsbN(4nEz)_X=Jg;{|XR QFWbD$!Yy>u&*1Za0EO!s@Bjb+ literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..662dc53d64651c05a7f151dd6833212938e23190 GIT binary patch literal 4959 zcmeHLUvC>l5TCWvIz9|3ffh=EZbRBQ67mTIFQlsEmV$!PKO$}_cxbx5o5Wl0_N?7K zH{nC@CHN3XAi+By3Nd?*)1x}$i*m65@#6LF&i;1xH?uRd_xm3|{|W$~!de4r44xPr z__2`6e=3Q;#;fx(3gIudH%f6#x1fn{)M*AAqaU>q-Hu)OuM@CJh`U#H5- z7&p~O8rhGqt5jlzm5DMmn=Lu;#qnUKpddL~d;X?W(%xcFZ?Eq#Sh$mf*nn3VEWOz1 zuGWcOgeB(v_(*9qNi@Qc2T44XbYR+r4|PItvH6U9&E5cch(Sa&g?uQ2@5Daxl?ij5 zF>@WqTqk3$^Mbh*9wulwDbHhJg8{dMg$G08I+up06DQ_-G(!$8 z(#YneJN#a1teYWM=R!H_je&EJV_Q^1;4F*I%~ZQWYjOBk+Cgui5%1D&i66YTqxJa4Y&2YCmXToByn5rw!A(hZ* ziip>&h~!M0kJGfx#z_qTw(A-iC2NUAE&o%vrM>UaIWv3R}8*wpA}CVi*S|IcS{`n|H5hJTd9mu zE36`>gz9{4^{-1EGctJ94A1Q*d)rB>1N=g|7`;}aMsUVu(ArcAbyj(xX}~IjowEty z3>rtDa%j_g(ikdvdQ{FB_z38m3VlgpP=j-Dp4tZWT)RkZo!TaN^!p0+KFRt3-Y?Ml zX8E3@q_l7fqHiCPA4!P_Ktnf^Bzbsg{ouI2T_Xv8U|LS~IgI z=~M6yJOmO*aL+>_&g{mqgVyzixS`@=e`bB=n={|}9sl{)ufGGpC-6ZXmKX@5!ypk- z1&_o?1SZ|HKMIY3NW|lmJ{lIS^Pyq_N`jV6sp81XPohLW_W>3pcu-53+| z8TXpK0rCjLnD!j;p$LBvedKFnef)w3-_hXbH24!5)_9bn;VQK}5jGrfOIWx+q}?6E z(xLAN_MM7;HDs^pg!g$Ul!M4Dv5WVIYYmS(M`hSUZl3^@EX}QUUsL8g< zSe=FBn!IqB)&`e`XJe1#d-Mx=r^sSEE$#EI%vkpe`7Ia9S+4+|f-G#Y7y{>6^vq24 zz0g`5d@JpsH_(W8C>&5((^k<@7`M$f5)DyX_cQln83RNs@$6hw@I8rfG?T1q9$jJo zg@MbInTiY-)l()c_llXi@+qVW8qE;#nhPR1*JdQN6qL2jmdE=e)LKSF<`Waq3Is%xK=P=hQpK{eSg{lEaC&ES=^;ToNF(kl`&VdN+g3}}zrk=Xxhq|2Pwr*OF6y4E0Ss2VDfOW{hc)5wW6chvVGwqodP~2_;8GuL zkJcL>1CH7T1{YczQ~M}PNHeZ{lPN0`?5L46lD5%yy=~r+lh$5$8~{!?k*tH6s{TQ!8x;VWV^K--#Q_6qg%48-p(@e*_?a)f@P__O~J3SCu(AH2- z8LR`*9S#l{EO(Sbo!103 zby#Px^K^oXG@sOqI$URPbzEPM9mSncVXHc9F!*SWP|3l$4(~I#TRQJwob!pIEolsu z&K{LT10Mo|=jiVRpnHw7+Bq86Y4kCTm+0yJ2957lybU&?3*Rf m{SxRJTqU3-;P5s*0oLg92$jJ*@Ge}28~M0Ki(i8ly!SVmSl5T9++*gjHHQUWP0VjI%dsnFdMFC?numQsS!KdRjzUO?-+iM{1+*V^4P zNxu#s0tqB|=R+Z8@9e~p?B=365#r%|y4mq>W`8p~GyC^HzyApUU&8$wTw<_iO&n!H zs_3;Cipc7H_lqzXiA=oFB(zdS4z06MEYdhnh0`W_mZxdEuk$o{h#iB%VbZd%RD%0b zVe++bq6P~Lt`(4}P`&7R_cg|jL47+;rIPLegUij$Jq8Ppbb>W#Fjzj;er$|3b$E{j zzrIoitxkuS@K|R9Ne)P@_`v9Hikbb22aQf2d4h3DZYO*o;-5ti`TBS#VY!pg?<6dC z5+3hlohKSCSK9GRxVX<9Vd24md_93>;?Q#xdKbfL$U(y^AMjWx58p+8v=OJd;O=mM zL1T<{ikgS|f2r(bgH*=Sahng&P;8ZTCXXq*c$q8BO)f3Z$4SNaX@wF@f# z-ILLmhYVd`C){`TC+M1OXQb+V!5^i<+U;Fw-GeDT#CLe#d->@@O!yrkZ@e)2;ILAm zxljV;k^OT>$5Z1_=Iehq67SAI0Cl*!1n9@?xEkExr@6w#| zEYG@VI=&e&SlQJyknW9|!$`Q+L)Ym`JD#$SS~`Odo0}8RCB0h=*6hrGobYAz2k%R* zo69so!=Ou;=W`L*cv#xls>2Nix8FX_(=^W@XzSd>_>J`B+^cX(JJJ1ku>-N>OZUmzroU9B)tUJ=-2B2Js%Vj ze{)=c>jXf#4yz<6g}fQv10;hLt3CI?KFkT5yhL9mP#b5C{bIC+*WErB_7ASlX%MRjM*8R zv_FOfQW3Ab^E-$;yK&=~-PR!yNIdMWXMFeUJ$KHWxxfGU^Gg7?aJz;I!=_EcAQ4Ij z&%{s!*6g?+MJfZ4h!=(?tx|!L*4ZEwaX5&DGimT>kaT7GKx&!#aSc_5)7ks6(7VCo z?lT!WhS?3JmAk`myV)rO{)W)=;Gj*BO2q1gaLVY1CX(x`PZ_G4^s9zBhJ^$CdueLY zI^JT{_P08f*2F^@@z5lFMfuU|yq}tGEED?$Z_I7?B#&em6RU{#Mfkngm3(ECPb(+d z@5v<9K6sCZLVNhG#j!84AdJ*x7&03n#IGZVTH<8~1=_b-^ zKM^`I$wUfAOLxj#rVJ}vrv~bHdmb}*hv96qgHUwyAr&ZC#$ZfEW^Fd30Uho!`%||{F^Hm7dy{f*)5UCSB}lFbzIc35`AS%EQMaL<2{Do zrm*CaMfe8_oC2vNq;wxN80NLybK5GB_WIfy!%}l~jBPFeBD>7+@?^+P?4y5epA*wv z>Bdy?B{3asq}R6qC1R`N62l);RAuy)H`wY#W&TTtp<>ywV%4$2&^7b78N-b?1QoQ8HQZv@D12{9=cEOHsH~;acAL&oi_0MH)H(yR zsM1L>OXC`iZqjUpo{e8n|8BAI6Xt)VQ3VTGB%?cVr~5oTDGFz>n9a@L-D4sw;cOwo zxq=)P3v+lMAB-Vn`DHB57a*J~M7V$t3lT0BAe=8m;3ajqT!3(~0HKO2RL=@N!pB*C aE4WI}CS9M<1$<7IKiRLLg*Dv3&A$NuQv`hg literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ObjectRefsInCollections.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/ObjectRefsInCollections.class new file mode 100644 index 0000000000000000000000000000000000000000..6e00cfcb80dd671150f95e0332cca801ca96b319 GIT binary patch literal 1731 zcmdT_-)j>=5T4DCUUNoMt5u}Yu6c?tcOZ&jMUdi;Xrj>8LLWDK+h*(CZrt6(w*Q!* zpzr=s;_M|cEi|SDL44S|-O0D#%r|p0`SJ71Hvo7DjQ|P+-dMxqj7b$Aupx`B-gBRr z5i!fyu|}hnGIqi`8*`TOLCTyq@w@JU;BHgw*_PVSX^ID_l?|XoU@7NGnc5%22rN92 zO1h^69yQx%I(UsnIn0d;MPQ?1X9Rj5d+yzh}P@D2UH%6O9xI~Kby)we; zbSM(ab=H>{Ctjz0qr0id>|+{MwtIpmf~Tl1p?$_buzf)rlX#+$;K&P(a>3D5aDygV zSgN$68FRcx9de1oKI%TjWq9OM8Tk;S^D&1N4?d)vDNo-O^tTYFDWmSFFT%=%>%W8z znUM_3@JAV=Jj~JOQ#A*2&P<(yX$E9wpfi7NVT6gYppGncst0t!fgA(6IgC*?53UZhcGslTu)j8o%UZGLF)vHO+PTgEj=(? zypY~~ea67b82|_z8CWeg7MXJk%w{Kpt&)ADU>h_dmr7Ehb$eS zkJZ_u4N(i3P6j@d;@(GvnQJMI15;WjlzSzS%<$e(0CxziO^SPJ1WzYq0F=P}IiNGf zD1mB6T8lN>#*t#-E?_YDM*vWO64rA8&jFquptXSS@GC6tE{C6?`aQ?g@aZvtYYCs# ud>_J9Sk7%_xORfU<1WTfg6nvv04s3A-^JZceBZ)V#|0R#_g{e9u=We?w;kR9 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/OptionalConstructorArgument.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/OptionalConstructorArgument.class new file mode 100644 index 0000000000000000000000000000000000000000..b37ec1fe7ed97fb218fb161e5dc4ce6c8b03d775 GIT binary patch literal 3731 zcmd^CQEwAR5S|T=&oOC3Qkqgi%O(WssHu;pP^1JQMNtc>3;_}%@who}?4@_RW_QmG z{4u0fYMbQC5` z$nY8Kve2kq`wP=NWC?qz&}f7REjQML5sRZVW>)ENqhp1VEM8O6Se-^_Th*;J;nD_B zB5=-Q#Z0!sjh$yavINSvg%tJgF(hiG$ zW-U(V_W9H^(RC-f?nT!RMbFWu;)Y6PX~JyOrWUdIUI*3nVd<#u!dZ6|>%$>e$DH#X zjhJ-sJDeT}v5GQkUvzkNY#;0Y=;rtj;5DSnpePIhGcZtHrUk>CI5wu)rWA;J$9|x> z6#Bq}mk)(I2@-DGs!3hB-{rQpX|<58MYOyJX6!)-w5+f)`t z-)1HnxYOD0Z@E)~z*IwFAK31l8a-plwuK?^sByv#bcMijo>|6Z<#n!^#fpSu!}O8! z^yeR^(izufR~Ui(A2Q7_)45)C-NpArn!af(PY zZyub{tDLB2>Rxze_qoK~T9*+{=fYSV%I^sT(^30H0N?aY=UK%B5cXNKyb1t|deR?} z`5g}cbK&y-jMeu);c$cx;3k2k0Zs*TK7sN3!WeABTi9R?%mV7ce=7iGDB-bP#&v+J z8)zND@9J+*c{){n1>=9{C&5n?grDR1jb1PbQ{FZTpP<)yyg!@4VxVxb4_R`~ zZw)z}Bjr%v7U46vkVEi!$;E$PT zqVd%qWjvi-T!=dY2`@gh(>AAH&v(xG&iwrK+p2sDh2!juUa?yxQkjoPxG znC2l%*}lRC2X0^4$BkMt#z+{e+Fu5J}P6>=X z5mMNv1Rm9!L*bY4jh=DXKuf_AvCphfaz({_XQ^_~oW?v#kXuYUEc(Ev|yNqf70m1;cWQ1h#rGfU{dIX??VO7*I*RJ2~5|U?tYjT`MT9YZs$ch(G-%u z&C(Xv8;&r6siwjz+Uy6Qe^|C{VF$m6h(!wEL z{i6z8A@Jh_@+ycZJ$)6Q0I9&FIDG{Cb(QIezZ5PnGei4Vu3G}LYnikntMqnPF zIceq%1=DstkI`oq?NUvbGb!&ZQK811qo!xv_YI~`h$r7F&xBO_ZMB^FdeMoJoC zESL7RKrkJ(_dJ+C(oTCB@!&Rrn+FZyNS7Y8Q4j7CcyNr-kY4LSoxtMId&krcf!c~N z2Bolp9m~KRAUXWY0M2EU%^2=I+%4k1gkS$FRNhbdpP}|0cO{s>+1UV&Nt|o>+J_4; zm7k5m#X|_r?z9M(VEPckz=z92d>9|%Lm95(t0lMwGwyX<&Eoe44vGU{0f&!V=inCH HfqTCJI|@R< literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Polymorphism.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Polymorphism.class new file mode 100644 index 0000000000000000000000000000000000000000..7612d2c4866b11b495b4b4501b9af0d8c5e660a4 GIT binary patch literal 1869 zcmdT_S#J|D5FV##H(5e2C|5za7Qzm4%!8$B7YR!IT znujc9TM7@25TWJ9nlNHX)J~XHI((~=ZmM*vDNO1?k-&I%Ibm`=eAC$AktHzlNJwEH z6L?Uq4@7;1&^_a@hL(aQVvAX!=iGU&6MrLp3M zN@Z!vY}BL{vG`^S+3ms7QQ+biI2VJXA^T-#yh$S_9ejh+zeKE}jM{FC`{f<1|I)0( zv|yNq18MZ)a5DT{L=QpAG0FA9_n`!*D=-YB1g5HWcR$REeA#Lt*RvuWs|(3rx6=mK zD~>RM$-2TSTHOx7_F>VYSO`3;|Eu2S2@F-8I!cCh7kQE>0<|28?GtVy8ewfg3ohfN zJ3qIdQ3=iy_<00j<;0R6zkZK^lw*>gI0F8%YU_wE2$zwG-3==fDuL;DZD~cyYqBGZ zz{EXuTFg2K=IL@4n$0j1Xm%LBo#Oh?VG2eW(nXRow8xK7~eP6yc2jr)DmgPR2I9AY$}xq46~aChLngDZwW zWl0!=rN4q5%D@aDH~g6Z&P9~T2<|=H-NStWzy3EUeVFvWK;;MS3NVJVvjH6AI9IZ@ z4-+t%oejg8T?o$ZxCm!qY8OJ^hjRmb7#-k45ia1X1-J;8-0QfS#_tsz6bHZ@4j;MB Kz%{r5xBdW>XE<&E literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Power.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Power.class new file mode 100644 index 0000000000000000000000000000000000000000..7d65097296b3e06ad9bad77d2e0dff2eb12a44b7 GIT binary patch literal 2877 zcmeHJT~8B16unamZC4OPQ4!REL~Rwji61cvAyGudR55}iK2CS1?cnZAotYLi{x1_u z^xc2qA2Ht9Qj1}Q;)CJAhuNK(y>s@SJ9p09Z$Gxb0Kgr%k%J6@dqxL-%!KqeSeyAq z)$AtI+-EWSpm5R%;ahI3@dFkGt%zBr{g-N!>l|bWj3%ohChPu6b%O_%z~H=)!Y&ZF zTdbtQJwwcnvA>L#f<@v3vqH(|D&%vebpqK%?B$?9V5En?q_xs{I8L%3UrWu6irPG+ zfr^^~y~5?RsZ}-NvAIvZ!dipVkOvWR32BoBZ&{twnXW(O4!yFYS5D}ad-P^#sJNk0 zSsF7NG^j-^zSTr_zhUX1>;hMIE|&X4_6p8;iv~X=E+b=Z8!DtO?VfO3T(w%r`Yc_Hm@)I~ENbzE5*3EFWXNkm zV!G9oPV&!X22IZ0zM-JI(rBg4wH6^y3CwP@qw4+<^~-}i3=hEooFFh>tn~D$vzdv0 zjZ|>&UbNyW*K00&35-<~3e5UWHt$SkZ9^CWbCti=;5h>P4=TGyv?EdVlN7`M^`-K? z1x}N5b#5OrgIsPEONU0t!&w5`edu=AwF8p&Umqp{!^nSWtBHDT@U9^+`Kl$Yi21T? z3nOroA2>-*E+X7huhKnzb9tB|@VyV}-4zE=Ke7=T#0a56A^BC+(gA-gT;_X;XeE~< zfvM!YZ28Icm&D3{!X?)XZ&u9Zfwq%CjBR>;xxxXh24fYr9Q3i;JKTuzWf>@Ggt1)O zrvkxr(0HGNs|0R#WA$4(vv2*8gA##9sq6NfC|7$ZgB1)GN{c&vzS4Aba4HAa3G`V| z{W@v{hMo(|Fj-$i!8b4sNE6F7K*7mk8^m!AN4Ie{gKzIMbBgGNF~eL35lXgP*Lb9^s2U3={`EUPUEs`2iqG8 zKj!|%Nr!ZN=SLyN4kc|_LXZOLeb^U!XCKcqGk!d8-~Ia^0Q?4b0w@sJFgglTCS-4{~WB?5P=jofv9$HjWa;VN1RmWWr(3MHSam@n402^5#{ zEr4+XlYRV0S}R?KA4qZIPpP?4NteeoQfWt^yZAfpXw^)3YVOg>_*R?Km`4ecjA^Im zF`e7@r{3dTcf9MKcfHShj>d``DwU-vvr(H`#NvA$WOoQlM|Bs`x^uBU9CBsc8Sl}E zNeAEL^dk|gD5LgehgZh;vHq84U8V)YGz_FM(m1$Or`)zxOkF;gS&~#Ytrl`;fi5S^ znEQw87t1V5_)?7uLo*rkmXMg&meM}aE(LUO9&S+s3o2y8V*FS&~ZPE?&h28m+vic$m~R%`hx`-z$-q8a9G1O%Pl$fOl1UzJ^9 z1X6q8-7 zPfKmP43`P~Jw$MaJTSh6&fs~!!!1%S10|$1gtOnS5{`{9VNi?@3W2Lfx7Iq-46B#x z1AD9tR|%xwHFg9ln<~>0UlC5p<_Dj6zQ-YO=~E?m%q76V%+mpb=Q(+7?8C%#e7?=elgbg=935s}*lyDs2=nl>n@L72c<-evX|G>l>92H>F zTN1ou6OH!?e4-VchABTc24@Z+_-|i{a2C$tI_DA1`EmiD`~LLNe#-IZbgn-aVfuhS zeMXmZ5YFc!Tp7ZjnH;o>xoETKPXXo}D{_Qh-?{l5xS1TdBK(3t1^Cs6tAcOWa9qP{ R0WW~tc$G1c*CB+P?*Y<|9B=>t literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/RuntimeTypeChecking.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/RuntimeTypeChecking.class new file mode 100644 index 0000000000000000000000000000000000000000..a1b5f643e4f70854420196a8a97ac44e4ec1d54f GIT binary patch literal 5238 zcmeHLTXP#V6h3mC?Ai@Un_ehQN|jKk!^I1wP>3^~$pqS_GTa{EyrqiS7xO( zN#A(qFYw53Uzu=u;o15e9B!-U}9MWLf;~Avr2Y5z(Q;|M#c6}P9x`jt zHglh`ElwAD@>CPDRYSHKldbm2F3^VLiUv|spJ}&6HDdAYHnJPS3f-zvW7UXQ&4*kr znZeuCWr2a;=okneg^h_mKG!YTpeDquGS90#(ji9859zAMlv+0E zw-%{TGzuELDFO^FO&P|q#zX;{5^>9=mzQbKPB~0zhP+}OW=J_Yr#Xzr9#Xw8Z^x0) zFM|zlOu{%!5jbC|8%sEGj!*V*oTI1fxMv?k{w5FCO}r;CQ3bc7N}?i&^|T#ttI~&_@jSzceW;nu* zkB_7&R?g;j_!$Jsk7N|O{I)Qa!o`&0HaiG6g~}vy#yh_L=%IiMU6{Lb_@|y5r}~e5GY`)0#c z%)@0;*!ap1xeUA}uTeLs9|&Xw)#*VPAjrD>f))##dz{v|>miRddcfRo*)FH!?O@9> zwPj6hIij}Qp>~|s0xqc^C|YOA-J=R^@xue;waZrMmi3^OHN>)=pY6ZS@i#rSx2Xd>fxprVj zSP4?WG+8JZPMS;(GC!J;TL7{U=}EIC=oDA+986#&^}~M*F$4b@Fqs-f>IXACT{i1n z?FBWeYh#6ZUMbG!JGA04DQDt;k0z*)wBgtIj_|Q6?gU{}CUpU$t)G{`a0c~jjZBaj~jqZy=dqLFu=ZPtF?%D}GU6614MY_d{O9?Zm8ANM!S6iH=Z?oCF*?HZwe`JEu7OE`sf$}m%g#6*d993ExRKx3i1_aX;)&|)0_ z#L1F_$6asZH9QCN1a7u#Ojnic9LeP134zHTLJ8+KIanlcKT+?MI@Gmq&%sjyckL8g zV}PTvCZxpUrcK;#NO&KRBs@>+hwE?w2Jz`SUDr%#K<366T-+3$XMrYEa+R literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/StringEnum.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/StringEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..882d8070c4949dd526de0d1a3c45f7d97536ba36 GIT binary patch literal 1095 zcmb_b!EO^V5FMv!(k!7VfflMDFgdjn+7%L9D5_Gb0zoNAv{dTR@j8jiuD#gakn%nJ z0}@DZ=c5qgO+!+N0}>p(v$o$nd)^!W`1$1<06cID1q>9eim_=3(+y`bv z#8UQA6n_gq5yM02Sysu+Xg{uS_bHITy+N?l>kWX)w5mqN-5mT z93N4KTw;=;7MHjT553l*zhd}z%t6hACzLbg>HC8IF2rfds5{R@P@8f6A6Pfd63L~b zHqV4X!IX6-=V(3krf*G!zfYxd+f-Vbt5^)A!cqqa!GD$~ZZR#Shq-lr2T_zMug&y? z1@0h#I$Wzm4Vnbj|6sKDxzR(0S9#hO=9r;%1e!gKMw~Ds{rqCF>_*ZO2#$1axOgT# zurY7j!TrN9v6h2c5ZPy}*)*HkOcxw~WO}xY?gv1~srbr@4;?L>sv>n`?sWY>+@F2d5 zi6;8rm+(!DXBNsORIG-O@MC6YCg*&6zH|NY>&rI)cm$OkWC%PqI`CsAq`%2J%r~lG zKQhgI7PD=Ik46aJa$}7juqa3(W|j8Wk~jxh0^_Mp#AMT7t#9(c5*V2iQrLL}F4y{k zy+XttVSgDV1&hQsvqH%g74q5227&AXo^ntiFt(4ssI}60I7fy)y_K396?J$>0~NOg z+Jx$~tyMkZv3W|p!g`C-kOvVm32B=J?^%=6nVvn>9dcDiu9}jo?vtCLq2h*0WogW8 z(4rQxc(;x04q@q_>fBa!CRPVS_6kn8O9Lhye4W!hB34mG?N*z6g&x+K6zec87>40k z8eUlSnIKzAQV!2sHbdE8n!~pp{;&m&~(yxJKaT0PU%#aY|Wq zqUn!}*Hoed{zA9_=CN|p9!Ov+4SLs4yIblWe~C-388%LI<8a4SA-c1F2;5visgYQP zi31*Le87m6mSv!%!7|{|z7ze%s;gWCk2_tiU+0dBM?g98eu z;KJ^iueKc>e9FOH0s~IVy<8$tToIUxvbl~u$G|ioO`OGmdloBa1n)V#J;Zwkzus5K zznkzrL-9M_GBAd_lL1`gxEIs22Nz%>eH(_02N0axzam_M68`5hYP$bi!Eeu=eYC56 k>?!rJCkxk6KLe8~o`{CW^*lRYb#GdMT35?}D+(_h)df=nQge-BNz*_EfHeT}tE@jj< zX&7JSFtP3jtucWsnVFED4ZY@5FhStYE_O^2h6vlLqpqBJM@}H!q}Lo#rn1^G4Yk~Don_F3f>~{!|9OgMF&9OdPD0xb*gN;h|$qhoj|`}w6KJ! zBN*=1SdFz&>x|W-oJzqvXXwtJ6;w1#ll2Z-VcT`;EyGMUZ|STyTnpDY0@LBbbCl59 z9G@ZZ%jrZ)7iHkpMIwu~fpeqhf=i}CMn@XU-S`2M%AQ`xo+-!@`2BR4cT~6IT~iMO zCV||RQt;8)k?C1;i{m>#AakF<)6?-xM8ILtsF+ZdT73muIW~?89A6zp*^VkSih>$1H5eeMbsk)Mv*}7ZfKF5w? zNzDm^=_WQ1H-oSHp%u(?f<WLtM_ z&-J-4nJd>gf(g4+Pr_>3Y_}0CNmy@NZRA4|z9ewFIkRk=BDW^JN!TPXdxDT=986$n zllwl7`}S~<=fm58isLLBU;+}@oDJZ060h##Y9Ia^KSS!9G2=%V`VFu8U<7}a4B#<} zzeB;f0heJcSnG%J5Q376i*N<5Y7wq!bVzG;xE_J_&}q>LoI?8;mr><2yx+I((}|Scsv+Qw>4_KEvwV2aE8zs?vD&1^z$A T;|U%BTX-1wO;~|7*nr$WIgwL3 literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Thrower.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/Thrower.class new file mode 100644 index 0000000000000000000000000000000000000000..9aa5d1a1b067660318fb02ab2658733d7ee9a7c7 GIT binary patch literal 1601 zcmdT^ZEI686h7&?cD+_Rr}J%tWmTaAxfewd+#Ja8Wzs2Zb>PP|H(fLDO=^Hb0P?SNN#dC_sMylJSX42fBFId58!qg3Ivv|;Ze$@igsC_MOJs* z9y20hDLd2{v{FV+SZ5>75}qZ@X%n@&M(+tzh9ZIK{J(^$o#=IYS8zw5v?7&ss{|f4 znqvW9BI+PHTE|Su5_!m+)M`V=VtHwsKyeLMWvCFSjqsluqswswW%}3_ZaxCm4-)>x7>ww#e_=MG&?;I5oYC3;PC2Y`OJ|0QXVObj9g3ctp1|B@rkqU0y6Q_SQM4!C z*LgRhM)SGQ`%!N8JQzI}N*IQHgc3~lS&|{<+{w=bW|dMMXa4Ak&U=Nox30KWR$3>N zdm$0b@a{nw76~jI_06&8YxLTb;U2v`h0qJVP|JypVe z8F%+_U%+qh8K&OO1RtUL6?X-w;p}q&$288>d>z0=n8{<4aOoEWpZBK-mrp>L9aBSX gObtc2il-Lf8eI3Ms5I&c(w4t!E7Z_}S83kGx4MIamY?=fUFGC$g>_y_En|Q59YFD;f*8MRg zkl;H%2L1u!lB|?YMI8b(?L(ZLb$;^PbLX?aeE;wX0Pe#b2T}yqjP|_-6VlsZZRQ!Z zZQn7?J=S1*3MY*ap5?|G&u5|E3Yk^f+muXqDow7L6-wq`pi};pR=XVs(gen0q>#y) zSE=rB-x3&E5>nV@0uKu1fxn0#5@&A}Jp~KJUJSmb0=`(>B9LCeF9)&&Mtk^Av{pI; zr${=rDK$4LZ1aHns?ik46uHr+R@IO<%tPvCH|m@Q+z&CnfHs-`men|&>+&fjA(x_% zOL54hUdVGaP~1?dENw9B*QrG;zT3p;`mnTLio`5M6ibIgcC(T5F7=s=;H#Ye48$tR zsO>blo9$v9W4B2D2Dfz;&`9HF+!ofY7P2-^S3+jY(iRI_e7Q)4p)DEkZ6Q(HZKY$e zBN=Fa;T@4Gl{VK}1bj#;qO1;a8LG(3R-?-GA4pQ_?Zu?7hA{YVv8=E#JdoZb+5ayX z7cy`<2PfeSfvG~d*Cmo4$6aK!j762Gy1}q95Ew5j+~!+Mi^$%eOxwCJ1S;i!+8q}O zWNO^TWlmtSQ2d2s!U;WQUbmzb4ZbSd!U&}FC~6CFGebshxtp=Y3``UFdWg2yT`{B- zjzhhofL0~xJSgCPk~1(%;M-BEas-u+b+N8m+UHM2RMHduZ8AQLa7(O8Ur8g3<vpq;|E`w=p4#@+Xj z`;1l!MsbXM0G}}&bMdzeXJI^^n}A95n%eg|hwm<0v?f72KLBlZAle1EI23JW09t+k jS{g1PgA`nbEBFSW__)ZPz*V>g(=Z>~X~@G3D8Q{BCgM5r literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnaryOperation.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnaryOperation.class new file mode 100644 index 0000000000000000000000000000000000000000..8d984c6b6e9382fb450300bb5d794f70f42e0086 GIT binary patch literal 2321 zcmdT`+invv5FLlKNtTqBmU69xDFqThS&55~XjKUcl%SL%dXac^cHP8f*ABK5lKvPH zNbtZLAB7liXwyJYf~pGf;9c7qpPe}~bG+ZafBXyp_u*CsQUo3w9r!U5(%)q*<{PzR z-!sj97PCEtn??xVa$}7juqbFo%qs0~Nv1pN4X&9LN@gHUU@AEtF?h6F(8vA9m6f6>Z3F4Xx`C@UKKzapd8ORZs?BPGvTInpDBl*C!;#W_zy z#SN9p(wNzxPAy{bb_1j9!_q;?F<5dgmPSMNa?ZF-1124OmD7VjtfGwCPJ?^7eXRf3 z%+VinTUQ}<9ItX)*sxm2+HJZLF=LjtS=8jqMJfz!%8>5}iQMieosjKlp#9bMk62l6 zajiwjhor(~b%@DOMqW1KD%XEONy#KE7Z)$ihS( z#^4lz*+QkK65S6cDl%EYqUy4`$xs*wOji`P`8LzSt$%K&ZCw}wPbx>3#6<#LjoU;b zWk}#|p*UCqf0NcoRQ;qS7PD}cz}FEJZbX$BT6f3QiO9uF6yoaE-v7{S5Zq zy3Xj2w_^rwU{wt~H?X7*UDibcBVO|dwTPsw31d*TH&KvH`U)V4_!9w;f;9HtIIc6e zx`(?de0!fD`)1nv0QoP8%_KgZ4d9rjGSd!VgW8>+=8r literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties$Builder.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties$Builder.class new file mode 100644 index 0000000000000000000000000000000000000000..2f997f33a8fe03616fad3e8c0aa0d660adecb930 GIT binary patch literal 5821 zcmeHLU2hyU6usW0o!ucNCA56Cv?c_)3uUH-_5o5=Y9d+%lD490C7zIX*2%ie+AG_W zq#(ot5Aej_K>`Wh`4RjS#Pv)!*(|e-(~eeAL93k)kLUQFt3KCOaI>(K ziL}FY0Mi6c<~S*noAI6YL!MXy(_gijCNQ@;`e@NT+fa(YnJ+SFMUSt@En!4E=EpIn^U)V&sP$HeBZ&n&dLjHmAEptfGwCM|~bP z23QAlb5KX6%Sx}GibPmyGV~~%6=|%_67)1$xKOi2g`t`3@C_kR#tnRe*DOozaPNq& zWyZQE*o!jhbT5F1APW^es2?PBH3}94Jwb}aiJKA$zEpUU2HQq9|0ug!JK%VoxB9X7mJPjWWzY;mnc2W5U@OdLaq4uwrGYDagtNxAeP6quAr zo*}B*Zimp}0N->$;_=dT1;s6HoA<01a`PfxPMI;+3eUV=k^)_6kq3^Epb>qBKnqx( z?L6{Y?}s2$!KD7@2v1br5Kh3{421A9fz!>Qio0;CMOPuuu3~*uB!qQWL%Y&kVF~+y zY2of4H%{BGz~XytwZbg|mg~W`u-zrMAz)?pRXSQ7&Jg&)qvEeBLyW-*N5~f9FSaTr zOW^zF>LAQLc>{MNP1mvFFcn)+hw}t}^pJaC3F>CJ_klsZ1yQrf_-q)MzE=T#dlYij-XEYce4u69aU(U_`0x$i6cQrVLNB0Kc|1=(FieB&vyqdSY2Crkw0HKC$ z1;QI82Asglf=&_uTv-7J>KS1LS-qzn_K(Xa5p>_z%Y8P=o*g literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..fba6b1c63eff9448193161f012f861d2658f5435 GIT binary patch literal 4868 zcmd^D-EJF26h0F|*Iq(W(iA8KI)nf=lwDd{A(5&QL==piG@@xGF30OhJY{#rnwiZ{ zQEzwx-UbOIxaT2w1>OL0W+$#4YlAn66(YD;@6PO*Z_fGV{CR)>>*rqq;5OU}V1~ek z(Mg;!A>+qvm&HbH+dZav%rf>w;iM5Fw%k|~CoE0!lv$W6UHXjj~ zUBjmU>I4>s_+MzPbPZl0;U5pB=0>Hvyh{_6^#!Vm%V}S$PRcX$DGlpeJx;qkNzuSA z?X%=Nw!`W2K%dCl966h#!scjb^D^x!Zm3k2X3Qo%Y7vX?_tCl|SUQOun~_s7s)iia zo$x+Qm~`+RPM;ZK6=l>O^m$kxU`-HnQ0GOYmGx7R2un?lo`R<$jn#RA9z^|7H=0x! zn#(TV77}UP#y9xP^3;w>M|3?m*1bU~%B17n1CKy@7Au%OiRkGt=nbr(PKih*Q%<)* zMQ=LYCRN{7}1=vc~ZG{1jJGw0O;gM?>X+9IO} z+2dNcl)^d~EG)rv!);G>#{nY4?LDO$8+q2@x>?C(j^R42SF-vnPxJmR*IIOu=6}qI z#~4IM(q<*o&hK_-<G=NY zH@UPT<1M)>j6jV(a~*Hdr=vn)d%);w4PGViXN8V_uwp_mRwxwzzWaLqu&5(Z1$+B( zQT+;j;*C5_-60}3uM=`DU6z$40v=C7p+H0kVS4$B0N)g|Hd9-X) zzc(EsK{H07ho)aEfqr@n^joKg{-FeV7M4-R8F(93@DA_}ULh(>;9Y3I75Es(^LQ#v M-2Maj5MsFTH+^vzZ2$lO literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/UnionProperties.class new file mode 100644 index 0000000000000000000000000000000000000000..aa5f58a242ade6da179a3477750322025bc18c31 GIT binary patch literal 3883 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 ZYrHSubqX(l^LS;G%r_9icW?&I{S5~%k469h literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/VariadicMethod.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/VariadicMethod.class new file mode 100644 index 0000000000000000000000000000000000000000..55ad5005df5e75512fcf3d735ebe34ca67d05b38 GIT binary patch literal 1709 zcmd5+T~AXn7=AkjXFE>8As7QnK`-#;oWy8M#F!|4&1{;;M`FC{dI~F^)6TY=z@5L! zL=(ODM;YICA}m1#ccB+O{n*o|&(rRGzJB}o831mW$J`=Hsvhmy_`91(oJS0%Or0J*U?!7Wdc)Sd(PB$`l7ufxFaxeS1Rf5 z5xBkFJeKzvk`KUX1Cf&Da-TV=RZC}L<@zRp@+yuZs1lew=*6HA?jydY|KhPt0djkFc8ghDrf3YKm3Y@LMIGiIev)uHa(@@51&PcT# z%5btNm3ZDO+QO{+_aablYOIrx133S&Sauz02|R3$o+&E?W|v_u>8C>jSYBA^5o4vKpyY7ZkZf+Yes z{s1~AHwn~Q(pr4Fb<7Y8i+~a_@BvCt#%G?ud4#i@xLU$K{sfg*_4otSz68u9emw@T wP2sl|#xb0SI?moB!}LfDWw?MmC76L(>|-2V#QqYtd29ezu~kspWmtg4?}l6w`~Uy| literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/VirtualMethodPlayground.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/VirtualMethodPlayground.class new file mode 100644 index 0000000000000000000000000000000000000000..84f47c13ec09230cce649bd04df2637ee455b553 GIT binary patch literal 2754 zcmeHJZEw>s5I%R^(uUHG!Uk-EWfP1JP$MA_5<^H6;$_eRqGJ*t-Nb7>61&(=S@*|~ zK)`4CQHV?0(GIn2l|TY%ADqOO%j0|Q?0fR<`-jf}a0{+mkRtF@E6)un7w!&iQ&-Dv z^NuR!(va>+G-}RW!?e+^M*}YksFBLu;>tucs4~-({)>Qi8cIgOw;)YmI>8C3Xt>Yo zJIpf#rtWgV%{>CQOO>GuJi%4E&h7?!avJbGYPb|t>9e)fEduHL_+&wrK%tNSKq;v* zaDt@2z7mRQ8MK-2crt8pj1xb1T1wUf7V0~Wo!x9Q$7f!E?0lz1y*ISMoaOy^%3Z?c zm~c5ET<#NIc6`aSBcyRcYP_an5R2`$klg_+<(1=9mg5l1M?YUbn|cszc^KY&1GZ+BVRZJ6*>;>m+gC;wfNwU*cPK- z*pPvfIhcezftgYz{@zWRY0W4u8c8!ORJdTzqOi`?W_+*+6e|+D)mHDI^^9rLi^h&6MIktFm?75gvh+!DzeDt*s6a=$SHbmcXYY^y?9+`v(pkfqb8R zEg?VMqKXCq3u;l=%ST=_?0W+SOGjbX+pft-dF&yNYqu~$O%oL%F#j?VhKFoJw7KS3 z?e$nF5_!YoE+h%wbrbbSjP4^Qn4&05SgXl44I*4)ezfkQ*HkF|C=O*}`>nujw;?lplhs2N{8pF9U5Q;+)&X0jGI}~AV41~F%2=ikgTpWUsh6T)i3NFCK ZxC;2Ri1#HNmv8`F!;!%%Uxq8N`UA)WA07Yz literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/composition/CompositeOperation$CompositionStringStyle.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/composition/CompositeOperation$CompositionStringStyle.class new file mode 100644 index 0000000000000000000000000000000000000000..75774722b2db5de247fc3e00583a415cd8aac3a3 GIT binary patch literal 3559 zcmds4-A@!T5T7D&+=758puvxdJV0W0W1=rY2nJEl9AE%Rd@Q?#E9|ys+ePrn|H?!Y zefN(tPWL#DL&)us!w?^KyKQFY<2TdkufKkO`vCyY;86j(2neIYAYnoVyKJ8YMs3?q zO!I&x?6bl}BSc`iu_g#v9Hud|N(Z4zs>%o}P-5}uo3B>6W^QS!zJ%ZFRtveaZVzK# zfNlcAnU$EyonUoqmxq=>?~2k1iwW$N|Cukd1d1>a5`BB+^+%dJHY)6aK8b#e**AH8Yyn5RF)>ph81d2FF&XvmQ8wf=)1J~ z&RxHKD_+t4ctArYovAHOj{~%dGHMU2+$+}gUPZCheXg~LcnjZLm@PzH<`QlzDxxku zi!6?(YsK-HF2>B5x!P=gh6+Pd8S!l)F&W!RXW4OB(fX!n?2{VAEo|pR_>_yUxjp6K zCW}+vwu3pXUmDbZ$FY(oTU@stNRBLbMx;5?)8KB%F)!H|{`7%3|xnVU=t zH$PhJwiRIrctUg94GJrxQma6 Q(gg0o1GGAc^KP8cKaP*QlmGw# literal 0 HcmV?d00001 diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/composition/CompositeOperation$Jsii$Proxy.class b/packages/jsii-pacmak/test/expected.jsii-calc/java/bin/src/main/java/software/amazon/jsii/tests/calculator/composition/CompositeOperation$Jsii$Proxy.class new file mode 100644 index 0000000000000000000000000000000000000000..b4db74c788108e75c321b892e71949b483705382 GIT binary patch literal 4814 zcmds5?{6D57=B%{U3zqMl#LC>4^z64!nhk72#HRUP$>|UQnYrJ_5mU1;wBzQBRMJ&OSb;6p55M_Vmuu## zR=&YbE8l5#(DR@|;9`axGuaNenvZy737o$xq_Fo0d|GQ14(TBB#$g>>3KomU8Th7Z z@wL@m0+n_A@?f68;sAd`Yo)93BJqEDAT>8C-sdgq%oS)k+D5xtHDjKb&!|7Y)8Vwm zqZs{d(JqUAWNl8D`}PDm1%aa=$S4Q~6a+&QEYp_ahDv2=!fe!`7IFDO7d;)p)luMx z4xG8c^rQImuHylXm~=xmIX!aFD$1zsb-6#^$32V9w)VN!qQxiJ=G>gn#LZm7ZAZ1J zo1S$R$F*&%g>2uX>oGItZeF^#N`;}RZ1FuIaWeLl&SuAPMNdXp4yQTvpkz76DOh}j6J*Nk0GH{sE+ANhxFokWvApi zndp9BByjJ@C1u<8;!|6;C9NJaud`PFdeV(WBrG*4?(MjZN@H~zVFo}qWSSi5nUJz+iwfm{G zBH?wpFN{DpK6eRgmVTobexpCrYgM>P;NKF7dcVgR&df%lqnwrys3PAPYXmMK)q@zx zV*&|!gTUXjBdEkOoTzV4Lky4^tMYYnoSDPbQw2)kpJ&O;Gm;ftK-((S5&u#+y|~iP zPX@>D?0kuuQRO9QunzzcZG0#L!0K8EaJaw1NdCT|Ap+^ zhnHa~t9u15VXMoBtzN}nDnxq|-kON^b^%(i0IdS= kpg(i44DaF_UuwuG6h0H2tYgxogr;q1foU2b=Hi96+?o(t(okF+f|?KsAq3;~#GbMjvomX) z{^G5WK!Tr0JOOV&p8|1aw;Nxw#^cCF6+dk6jAy?&=bN+NIeY&2`{!Q);BDBpV2Z$f z89KJdgl|7!EoRH$Q2oF{ZZnTP3~*8kVJj|`v>oO;k;_yN+D_m#11Xfi6GWWTMnT*xsq=ni22B$Udxaee! zHktDst8==N+EYsWE@{6@vEQYR-=!|US7w;s+=A>r~=BUI%@L5Y>N9NF57MKFcdXD#5V2bkR|%$Jgyo+jq2ms zVy?Tkr$XV^U#D9xlX4>&Z5FAJH1ccwQ22Nlhd~&hj^>J<4A+F>A$uD#+-KrluKFxI zU~a@mHqdbQiBWyhkIy2n%EOTzF*xP%EE#$b6(QA=YyJQdj6!w5y|ha&{;%v9J|{!n zPelTAMd2kgV{2&jfO8$U`j@??D;%Myj4+{N8ug_LBL~wy-S#8zSkHv7GISO- zmqo7XzO6)eBB?OvYBi?J*I6>zp$mK5UKmQDA@xH8<}|Wi(&f(T=V8!3GWOoktpTAj zk_4Pe;d^{Cuwr8VjH@^p(V+t5;mjON!#shdwTfoIj%(mVM&cTFp@Ppr!tOr9vXsDL zCBP!{fQ3SjA5Z2~Lr4PqmGKwo>jd&DNK7JdZmoFIPy(0kN4^psFZ(Sa1=@96SDCvs{;Ua-Y29qX{XAcj%9%B+SuWO5iU8cPADiCmA`F zzL`bHJkrrsHxT&7I7GVMFf-n)kEePI6XbW5z@G;Ejw_u0(*lXWyzC?N+W{Sf5jz!w z_$(geVU0j_e2fkdwE`;XUJ!*2|5)fua3LkO(@lvx2Lvw18r`;*izTXdwiM}716R#>K`qkzJazazD%Vok*CiOf32|S2A`mQe8b<`?%042;uhd*x zaGih{e-c_vUG0r!0_U^;u;3j6Ur)e}P8o)W(HU6qeoq%G(F+TZ#;)F0@|auj0fB4j z!_|`nG~mFVmIWUY_$u?h@kFu(w=qGPZJ@JLR}XKCfMGZAIIUsi> resolveClass(final String fqn) throws ClassNotFoundException case "jsii-calc.MutableObjectLiteral": return software.amazon.jsii.tests.calculator.MutableObjectLiteral.class; case "jsii-calc.Negate": return software.amazon.jsii.tests.calculator.Negate.class; case "jsii-calc.NodeStandardLibrary": return software.amazon.jsii.tests.calculator.NodeStandardLibrary.class; + case "jsii-calc.NullShouldBeTreatedAsUndefined": return software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefined.class; + case "jsii-calc.NullShouldBeTreatedAsUndefinedData": return software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefinedData.class; case "jsii-calc.NumberGenerator": return software.amazon.jsii.tests.calculator.NumberGenerator.class; case "jsii-calc.ObjectRefsInCollections": return software.amazon.jsii.tests.calculator.ObjectRefsInCollections.class; case "jsii-calc.OptionalConstructorArgument": return software.amazon.jsii.tests.calculator.OptionalConstructorArgument.class; diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefined.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefined.java new file mode 100644 index 0000000000..96b9f62e90 --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefined.java @@ -0,0 +1,45 @@ +package software.amazon.jsii.tests.calculator; + +/** + * jsii#282, aws-cdk#157: null should be treated as "undefined" + */ +@javax.annotation.Generated(value = "jsii-pacmak") +@software.amazon.jsii.Jsii(module = software.amazon.jsii.tests.calculator.$Module.class, fqn = "jsii-calc.NullShouldBeTreatedAsUndefined") +public class NullShouldBeTreatedAsUndefined extends software.amazon.jsii.JsiiObject { + protected NullShouldBeTreatedAsUndefined(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + public NullShouldBeTreatedAsUndefined(final java.lang.String _param1, @javax.annotation.Nullable final java.lang.Object optional) { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, java.util.stream.Stream.concat(java.util.stream.Stream.of(java.util.Objects.requireNonNull(_param1, "_param1 is required")), java.util.stream.Stream.of(optional)).toArray()); + } + public NullShouldBeTreatedAsUndefined(final java.lang.String _param1) { + super(software.amazon.jsii.JsiiObject.InitializationMode.Jsii); + software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, java.util.stream.Stream.of(java.util.Objects.requireNonNull(_param1, "_param1 is required")).toArray()); + } + + public void giveMeUndefined(@javax.annotation.Nullable final java.lang.Object value) { + this.jsiiCall("giveMeUndefined", Void.class, java.util.stream.Stream.of(value).toArray()); + } + + public void giveMeUndefined() { + this.jsiiCall("giveMeUndefined", Void.class); + } + + public void giveMeUndefinedInsideAnObject(final software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefinedData input) { + this.jsiiCall("giveMeUndefinedInsideAnObject", Void.class, java.util.stream.Stream.of(java.util.Objects.requireNonNull(input, "input is required")).toArray()); + } + + public void verifyPropertyIsUndefined() { + this.jsiiCall("verifyPropertyIsUndefined", Void.class); + } + + @javax.annotation.Nullable + public java.lang.String getChangeMeToUndefined() { + return this.jsiiGet("changeMeToUndefined", java.lang.String.class); + } + + public void setChangeMeToUndefined(@javax.annotation.Nullable final java.lang.String value) { + this.jsiiSet("changeMeToUndefined", value); + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData.java b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData.java new file mode 100644 index 0000000000..e54655c3bf --- /dev/null +++ b/packages/jsii-pacmak/test/expected.jsii-calc/java/src/main/java/software/amazon/jsii/tests/calculator/NullShouldBeTreatedAsUndefinedData.java @@ -0,0 +1,108 @@ +package software.amazon.jsii.tests.calculator; + +@javax.annotation.Generated(value = "jsii-pacmak") +public interface NullShouldBeTreatedAsUndefinedData extends software.amazon.jsii.JsiiSerializable { + java.util.List getArrayWithThreeElementsAndUndefinedAsSecondArgument(); + void setArrayWithThreeElementsAndUndefinedAsSecondArgument(final java.util.List value); + java.lang.Object getThisShouldBeUndefined(); + void setThisShouldBeUndefined(final java.lang.Object value); + + /** + * @return a {@link Builder} of {@link NullShouldBeTreatedAsUndefinedData} + */ + static Builder builder() { + return new Builder(); + } + + /** + * A builder for {@link NullShouldBeTreatedAsUndefinedData} + */ + final class Builder { + private java.util.List _arrayWithThreeElementsAndUndefinedAsSecondArgument; + @javax.annotation.Nullable + private java.lang.Object _thisShouldBeUndefined; + + /** + * Sets the value of ArrayWithThreeElementsAndUndefinedAsSecondArgument + * @param value the value to be set + * @return {@code this} + */ + public Builder withArrayWithThreeElementsAndUndefinedAsSecondArgument(final java.util.List value) { + this._arrayWithThreeElementsAndUndefinedAsSecondArgument = java.util.Objects.requireNonNull(value, "arrayWithThreeElementsAndUndefinedAsSecondArgument is required"); + return this; + } + /** + * Sets the value of ThisShouldBeUndefined + * @param value the value to be set + * @return {@code this} + */ + public Builder withThisShouldBeUndefined(@javax.annotation.Nullable final java.lang.Object value) { + this._thisShouldBeUndefined = value; + return this; + } + + /** + * Builds the configured instance. + * @return a new instance of {@link NullShouldBeTreatedAsUndefinedData} + * @throws NullPointerException if any required attribute was not provided + */ + public NullShouldBeTreatedAsUndefinedData build() { + return new NullShouldBeTreatedAsUndefinedData() { + private java.util.List $arrayWithThreeElementsAndUndefinedAsSecondArgument = java.util.Objects.requireNonNull(_arrayWithThreeElementsAndUndefinedAsSecondArgument, "arrayWithThreeElementsAndUndefinedAsSecondArgument is required"); + @javax.annotation.Nullable + private java.lang.Object $thisShouldBeUndefined = _thisShouldBeUndefined; + + @Override + public java.util.List getArrayWithThreeElementsAndUndefinedAsSecondArgument() { + return this.$arrayWithThreeElementsAndUndefinedAsSecondArgument; + } + + @Override + public void setArrayWithThreeElementsAndUndefinedAsSecondArgument(final java.util.List value) { + this.$arrayWithThreeElementsAndUndefinedAsSecondArgument = java.util.Objects.requireNonNull(value, "arrayWithThreeElementsAndUndefinedAsSecondArgument is required"); + } + + @Override + public java.lang.Object getThisShouldBeUndefined() { + return this.$thisShouldBeUndefined; + } + + @Override + public void setThisShouldBeUndefined(@javax.annotation.Nullable final java.lang.Object value) { + this.$thisShouldBeUndefined = value; + } + + }; + } + } + + /** + * A proxy class which represents a concrete javascript instance of this type. + */ + final static class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefinedData { + protected Jsii$Proxy(final software.amazon.jsii.JsiiObject.InitializationMode mode) { + super(mode); + } + + @Override + public java.util.List getArrayWithThreeElementsAndUndefinedAsSecondArgument() { + return this.jsiiGet("arrayWithThreeElementsAndUndefinedAsSecondArgument", java.util.List.class); + } + + @Override + public void setArrayWithThreeElementsAndUndefinedAsSecondArgument(final java.util.List value) { + this.jsiiSet("arrayWithThreeElementsAndUndefinedAsSecondArgument", java.util.Objects.requireNonNull(value, "arrayWithThreeElementsAndUndefinedAsSecondArgument is required")); + } + + @Override + @javax.annotation.Nullable + public java.lang.Object getThisShouldBeUndefined() { + return this.jsiiGet("thisShouldBeUndefined", java.lang.Object.class); + } + + @Override + public void setThisShouldBeUndefined(@javax.annotation.Nullable final java.lang.Object value) { + this.jsiiSet("thisShouldBeUndefined", value); + } + } +} diff --git a/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst b/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst index f7aa575961..2578cfe772 100644 --- a/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst +++ b/packages/jsii-pacmak/test/expected.jsii-calc/sphinx/jsii-calc.rst @@ -2737,6 +2737,101 @@ NodeStandardLibrary :type: string *(readonly)* +NullShouldBeTreatedAsUndefined +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: NullShouldBeTreatedAsUndefined(_param1, [optional]) + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefined; + + .. code-tab:: javascript + + const { NullShouldBeTreatedAsUndefined } = require('jsii-calc'); + + .. code-tab:: typescript + + import { NullShouldBeTreatedAsUndefined } from 'jsii-calc'; + + + + jsii#282, aws-cdk#157: null should be treated as "undefined" + + + :param _param1: + :type _param1: string + :param optional: + :type optional: any or ``undefined`` + + .. py:method:: giveMeUndefined([value]) + + :param value: + :type value: any or ``undefined`` + + + .. py:method:: giveMeUndefinedInsideAnObject(input) + + :param input: + :type input: :py:class:`~jsii-calc.NullShouldBeTreatedAsUndefinedData`\ + + + .. py:method:: verifyPropertyIsUndefined() + + + + .. py:attribute:: changeMeToUndefined + + :type: string or ``undefined`` + + +NullShouldBeTreatedAsUndefinedData (interface) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. py:class:: NullShouldBeTreatedAsUndefinedData + + **Language-specific names:** + + .. tabs:: + + .. code-tab:: c# + + using Amazon.JSII.Tests.CalculatorNamespace; + + .. code-tab:: java + + import software.amazon.jsii.tests.calculator.NullShouldBeTreatedAsUndefinedData; + + .. code-tab:: javascript + + // NullShouldBeTreatedAsUndefinedData is an interface + + .. code-tab:: typescript + + import { NullShouldBeTreatedAsUndefinedData } from 'jsii-calc'; + + + + + + .. py:attribute:: arrayWithThreeElementsAndUndefinedAsSecondArgument + + :type: (any or ``undefined``)[] *(abstract)* + + + .. py:attribute:: thisShouldBeUndefined + + :type: any or ``undefined`` *(abstract)* + + NumberGenerator ^^^^^^^^^^^^^^^