aws / aws/jsii

Unable to resolve unexported referenced type when moved

Open
#1,980 9 comments 1 reaction 0 assignees View on GitHub
bug effort/small language/typescript p2
Dominant language
TypeScript
Stars
2.9k
Forks
267
Avg merge
1d 25m
Merged PRs (30d)
14

Description

## :bug: Bug Report

### Affected Languages
- [X] `TypeScript` or `Javascript`
- [ ] `Python`
- [ ] `Java`
- [ ] .NET (`C#`, `F#`, ...)

### General Information
* **JSII Version:** 1.12.0
* **Platform:** Darwin - 18.7.0 Darwin Kernel Version 18.7.0: Thu Jun 18 20:50:10 PDT 2020; root:xnu-4903.278.43~1/RELEASE_X86_64 x86_64

### What is the problem?
When refactoring unexported (supporting) types from inline in the same file as exported types to another (unexported) file, jsii loses the ability to resolve the types.

#### This works

`index.ts`
```ts
export * from './has-unexported-base';
```

`has-unexported-base.ts`
```ts
interface MyExportedPropsBase { // Not exported
readonly myProperty: number;
}
export interface MyExportedProps extends MyExportedPropsBase { // Exported
readonly mySecondProperty: number;
}
```

#### This doesn't

`index.ts`
```ts
export * from './has-unexported-base';
```

`has-unexported-base.ts`
```ts
import { MyExportedPropsBase } from './private/unexported-base';
export interface MyExportedProps extends MyExportedPropsBase {
readonly mySecondProperty: number;
}
```

`private/unexported-base.ts`
```ts
export interface MyExportedPropsBase { // Exported here, but not in `index.ts`
readonly myProperty: number;
}
```

### Verbose Log

```
[2020-09-04T11:58:30.924] [ERROR] jsii/compiler - Type model errors prevented the JSII assembly from being created
error JSII9002: Unable to resolve type "jsii-calc.MyExportedPropsBase". It may be @iternal or not exported from the module's entry point (as configured in "package.json" as "main").
lib/has-unexported-base.ts:3:1 - error JSII9002: Unable to resolve type "jsii-calc.MyExportedPropsBase". It may be @iternal or not exported from the module's entry point (as configured in "package.json" as "main").

3 export interface MyExportedProps extends MyExportedPropsBase {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 readonly mySecondProperty: number;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 }
```

Verbose output

```

[2020-09-04T13:11:18.556] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.submodule.child.Goodness
[2020-09-04T13:11:18.560] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.submodule.child.Awesomeness
[2020-09-04T13:11:18.560] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.submodule.child.SomeEnum
[2020-09-04T13:11:18.561] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.AllTypesEnum
[2020-09-04T13:11:18.561] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.StringEnum
[2020-09-04T13:11:18.562] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.SingletonStringEnum
[2020-09-04T13:11:18.562] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.SingletonIntEnum
[2020-09-04T13:11:18.562] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.ExperimentalEnum
[2020-09-04T13:11:18.563] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.StableEnum
[2020-09-04T13:11:18.563] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.DeprecatedEnum
[2020-09-04T13:11:18.563] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.ExternalEnum
[2020-09-04T13:11:18.568] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ClassWithDocs
[2020-09-04T13:11:18.569] [INFO] jsii/assembler - Registering JSII class: jsii-calc.BaseJsii976
[2020-09-04T13:11:18.587] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IJsii487External
[2020-09-04T13:11:18.588] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IJsii487External2
[2020-09-04T13:11:18.588] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IJsii496
[2020-09-04T13:11:18.605] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DerivedClassHasNoProperties.Base
[2020-09-04T13:11:18.606] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Thrower
[2020-09-04T13:11:18.606] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AbstractClassBase
[2020-09-04T13:11:18.606] [INFO] jsii/assembler - Registering JSII class: jsii-calc.PublicClass
[2020-09-04T13:11:18.607] [INFO] jsii/assembler - Registering JSII class: jsii-calc.StripInternal
[2020-09-04T13:11:18.607] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Implementation
[2020-09-04T13:11:18.608] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Old
[2020-09-04T13:11:18.610] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.submodule.child.Structure
[2020-09-04T13:11:18.611] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.submodule.nested_submodule.deeplyNested.INamespaced
[2020-09-04T13:11:18.611] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.PythonSelf.StructWithSelf
[2020-09-04T13:11:18.611] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.InterfaceInNamespaceOnlyInterface.Hello
[2020-09-04T13:11:18.611] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.InterfaceInNamespaceIncludesClasses.Hello
[2020-09-04T13:11:18.612] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IInterfaceImplementedByAbstractClass
[2020-09-04T13:11:18.612] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IMutableObjectLiteral
[2020-09-04T13:11:18.612] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IPrivatelyImplemented
[2020-09-04T13:11:18.615] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IInterfaceWithInternal
[2020-09-04T13:11:18.615] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IAnotherPublicInterface
[2020-09-04T13:11:18.616] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.DiamondInheritanceBaseLevelStruct
[2020-09-04T13:11:18.616] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IBell
[2020-09-04T13:11:18.616] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.NestedStruct
[2020-09-04T13:11:18.616] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IReturnJsii976
[2020-09-04T13:11:18.617] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.ParentStruct982
[2020-09-04T13:11:18.617] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.ExperimentalStruct
[2020-09-04T13:11:18.617] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.StableStruct
[2020-09-04T13:11:18.618] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.DeprecatedStruct
[2020-09-04T13:11:18.618] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.ExternalStruct
[2020-09-04T13:11:18.621] [INFO] jsii/assembler - Registering JSII class: jsii-calc.UseBundledDependency
[2020-09-04T13:11:18.622] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ImplementInternalInterface
[2020-09-04T13:11:18.622] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ImplementsPrivateInterface
[2020-09-04T13:11:18.622] [INFO] jsii/assembler - Registering JSII class: jsii-calc.UmaskCheck
[2020-09-04T13:11:18.624] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IRandomNumberGenerator
[2020-09-04T13:11:18.624] [INFO] jsii/assembler - Registering JSII class: jsii-calc.PropertyNamedProperty
[2020-09-04T13:11:18.625] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JSObjectLiteralToNativeClass
[2020-09-04T13:11:18.627] [INFO] jsii/assembler - Registering JSII class: jsii-calc.InterfaceInNamespaceIncludesClasses.Foo
[2020-09-04T13:11:18.628] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ExportedBaseClass
[2020-09-04T13:11:18.628] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JsiiAgent
[2020-09-04T13:11:18.628] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AugmentableClass
[2020-09-04T13:11:18.629] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IPublicInterface
[2020-09-04T13:11:18.629] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IPublicInterface2
[2020-09-04T13:11:18.630] [INFO] jsii/assembler - Registering JSII class: jsii-calc.WithPrivatePropertyInConstructor
[2020-09-04T13:11:18.632] [INFO] jsii/assembler - Registering JSII class: jsii-calc.SingletonString
[2020-09-04T13:11:18.633] [INFO] jsii/assembler - Registering JSII class: jsii-calc.SingletonInt
[2020-09-04T13:11:18.633] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.SmellyStruct
[2020-09-04T13:11:18.634] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IInterfaceWithProperties
[2020-09-04T13:11:18.634] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IInterfaceWithMethods
[2020-09-04T13:11:18.634] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.ExtendsInternalInterface
[2020-09-04T13:11:18.635] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.OptionalStruct
[2020-09-04T13:11:18.635] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.Greetee
[2020-09-04T13:11:18.635] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IJSII417PublicBaseOfBase
[2020-09-04T13:11:18.636] [INFO] jsii/assembler - Registering JSII class: jsii-calc.MethodNamedProperty
[2020-09-04T13:11:18.636] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.PythonSelf.IInterfaceWithSelf
[2020-09-04T13:11:18.637] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DoNotRecognizeAnyAsOptional
[2020-09-04T13:11:18.641] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IInterfaceWithOptionalMethodArguments
[2020-09-04T13:11:18.641] [INFO] jsii/assembler - Registering JSII class: jsii-calc.VoidCallback
[2020-09-04T13:11:18.642] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IAnonymouslyImplementMe
[2020-09-04T13:11:18.643] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IObjectWithProperty
[2020-09-04T13:11:18.644] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IOptionalMethod
[2020-09-04T13:11:18.646] [INFO] jsii/assembler - Registering JSII class: jsii-calc.StaticContext
[2020-09-04T13:11:18.648] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DontComplainAboutVariadicAfterOptional
[2020-09-04T13:11:18.649] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.SecondLevelStruct
[2020-09-04T13:11:18.649] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.SupportsNiceJavaBuilderProps
[2020-09-04T13:11:18.650] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IExperimentalInterface
[2020-09-04T13:11:18.650] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IStableInterface
[2020-09-04T13:11:18.651] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IDeprecatedInterface
[2020-09-04T13:11:18.651] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IExternalInterface
[2020-09-04T13:11:18.652] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.NullShouldBeTreatedAsUndefinedData
[2020-09-04T13:11:18.652] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IExtendsPrivateInterface
[2020-09-04T13:11:18.653] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DynamicPropertyBearer
[2020-09-04T13:11:18.656] [INFO] jsii/assembler - Registering JSII class: jsii-calc.BurriedAnonymousObject
[2020-09-04T13:11:18.658] [INFO] jsii/assembler - Registering JSII class: jsii-calc.PythonSelf.ClassWithSelf
[2020-09-04T13:11:18.658] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ClassWithJavaReservedWords
[2020-09-04T13:11:18.659] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.CalculatorProps
[2020-09-04T13:11:18.659] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.EraseUndefinedHashValuesOptions
[2020-09-04T13:11:18.660] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.StructParameterType
[2020-09-04T13:11:18.661] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DoNotOverridePrivates
[2020-09-04T13:11:18.664] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AbstractSuite
[2020-09-04T13:11:18.665] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.StructA
[2020-09-04T13:11:18.667] [INFO] jsii/assembler - Registering JSII class: jsii-calc.OverridableProtectedMember
[2020-09-04T13:11:18.667] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DisappointingCollectionSource
[2020-09-04T13:11:18.668] [INFO] jsii/assembler - Registering JSII class: jsii-calc.NodeStandardLibrary
[2020-09-04T13:11:18.668] [INFO] jsii/assembler - Registering JSII class: jsii-calc.RuntimeTypeChecking
[2020-09-04T13:11:18.669] [INFO] jsii/assembler - Registering JSII class: jsii-calc.VariadicMethod
[2020-09-04T13:11:18.669] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AllowedMethodNames
[2020-09-04T13:11:18.670] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ExperimentalClass
[2020-09-04T13:11:18.670] [INFO] jsii/assembler - Registering JSII class: jsii-calc.StableClass
[2020-09-04T13:11:18.670] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DeprecatedClass
[2020-09-04T13:11:18.671] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ExternalClass
[2020-09-04T13:11:18.672] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.StructWithJavaReservedWords
[2020-09-04T13:11:18.673] [INFO] jsii/assembler - Registering JSII class: jsii-calc.OptionalConstructorArgument
[2020-09-04T13:11:18.673] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DefaultedConstructorArgument
[2020-09-04T13:11:18.678] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.LoadBalancedFargateServiceProps
[2020-09-04T13:11:18.679] [INFO] jsii/assembler - Registering JSII class: jsii-calc.VirtualMethodPlayground
[2020-09-04T13:11:18.680] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AsyncVirtualMethods
[2020-09-04T13:11:18.682] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ClassWithCollections
[2020-09-04T13:11:18.684] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JsonFormatter
[2020-09-04T13:11:18.685] [INFO] jsii/assembler - Registering JSII class: jsii-calc.SyncVirtualMethods
[2020-09-04T13:11:18.686] [INFO] jsii/assembler - Registering JSII class: jsii-calc.PythonReservedWords
[2020-09-04T13:11:18.689] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JavaReservedWords
[2020-09-04T13:11:18.697] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IFriendlier
[2020-09-04T13:11:18.698] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Add
[2020-09-04T13:11:18.701] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DerivedClassHasNoProperties.Derived
[2020-09-04T13:11:18.702] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DoubleTrouble
[2020-09-04T13:11:18.704] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.ImplictBaseOfBase
[2020-09-04T13:11:18.705] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IInterfaceWithPropertiesExtension
[2020-09-04T13:11:18.706] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IInterfaceThatShouldNotBeADataType
[2020-09-04T13:11:18.707] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ImplementsInterfaceWithInternal
[2020-09-04T13:11:18.707] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ImplementsInterfaceWithInternalSubclass
[2020-09-04T13:11:18.708] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.INonInternalInterface
[2020-09-04T13:11:18.709] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.DiamondInheritanceFirstMidLevelStruct
[2020-09-04T13:11:18.709] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.DiamondInheritanceSecondMidLevelStruct
[2020-09-04T13:11:18.710] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IFriendlyRandomGenerator
[2020-09-04T13:11:18.711] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ClassThatImplementsTheInternalInterface
[2020-09-04T13:11:18.712] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ClassThatImplementsThePrivateInterface
[2020-09-04T13:11:18.714] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Bell
[2020-09-04T13:11:18.714] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.ChildStruct982
[2020-09-04T13:11:18.716] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DynamicPropertyBearerChild
[2020-09-04T13:11:18.717] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JSII417Derived
[2020-09-04T13:11:18.717] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IJSII417Derived
[2020-09-04T13:11:18.718] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.DiamondInheritanceTopLevelStruct
[2020-09-04T13:11:18.718] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Jsii487Derived
[2020-09-04T13:11:18.719] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Polymorphism
[2020-09-04T13:11:18.720] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Jsii496Derived
[2020-09-04T13:11:18.721] [INFO] jsii/assembler - Registering JSII class: jsii-calc.GreetingAugmenter
[2020-09-04T13:11:18.722] [INFO] jsii/assembler - Registering JSII class: jsii-calc.OverrideReturnsObject
[2020-09-04T13:11:18.722] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ReturnsPrivateImplementationOfInterface
[2020-09-04T13:11:18.723] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ClassWithMutableObjectLiteralProperty
[2020-09-04T13:11:18.724] [INFO] jsii/assembler - Registering JSII class: jsii-calc.EraseUndefinedHashValues
[2020-09-04T13:11:18.725] [INFO] jsii/assembler - Registering JSII class: jsii-calc.PartiallyInitializedThisConsumer
[2020-09-04T13:11:18.726] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DataRenderer
[2020-09-04T13:11:18.727] [INFO] jsii/assembler - Registering JSII class: jsii-calc.RootStructValidator
[2020-09-04T13:11:18.728] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ConstructorPassesThisOut
[2020-09-04T13:11:18.728] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IConcreteBellRinger
[2020-09-04T13:11:18.729] [INFO] jsii/assembler - Registering JSII class: jsii-calc.DocumentedClass
[2020-09-04T13:11:18.730] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JSObjectLiteralToNative
[2020-09-04T13:11:18.730] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IBellRinger
[2020-09-04T13:11:18.731] [INFO] jsii/assembler - Registering JSII class: jsii-calc.UseCalcBase
[2020-09-04T13:11:18.732] [INFO] jsii/assembler - Registering JSII class: jsii-calc.SomeTypeJsii976
[2020-09-04T13:11:18.733] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ObjectWithPropertyProvider
[2020-09-04T13:11:18.734] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Isomorphism
[2020-09-04T13:11:18.734] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JSII417PublicBaseOfBase
[2020-09-04T13:11:18.735] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IStructReturningDelegate
[2020-09-04T13:11:18.736] [INFO] jsii/assembler - Registering JSII class: jsii-calc.OptionalArgumentInvoker
[2020-09-04T13:11:18.736] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.RootStruct
[2020-09-04T13:11:18.736] [INFO] jsii/assembler - Registering JSII class: jsii-calc.InterfacesMaker
[2020-09-04T13:11:18.737] [INFO] jsii/assembler - Registering JSII class: jsii-calc.OptionalStructConsumer
[2020-09-04T13:11:18.737] [INFO] jsii/assembler - Registering JSII class: jsii-calc.NullShouldBeTreatedAsUndefined
[2020-09-04T13:11:18.738] [INFO] jsii/assembler - Registering JSII class: jsii-calc.SupportsNiceJavaBuilderWithRequiredProps
[2020-09-04T13:11:18.739] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.TopLevelStruct
[2020-09-04T13:11:18.740] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.StructB
[2020-09-04T13:11:18.740] [INFO] jsii/assembler - Registering JSII class: jsii-calc.VariadicInvoker
[2020-09-04T13:11:18.740] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.UnionProperties
[2020-09-04T13:11:18.745] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.MyExportedProps
[2020-09-04T13:11:18.746] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.submodule.back_references.MyClassReference
[2020-09-04T13:11:18.746] [INFO] jsii/assembler - Registering JSII class: jsii-calc.NestedClassInstance
[2020-09-04T13:11:18.747] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.submodule.child.KwargsProps
[2020-09-04T13:11:18.748] [INFO] jsii/assembler - Registering JSII class: jsii-calc.submodule.isolated.Kwargs
[2020-09-04T13:11:18.748] [INFO] jsii/assembler - Registering JSII class: jsii-calc.submodule.child.InnerClass
[2020-09-04T13:11:18.748] [INFO] jsii/assembler - Registering JSII class: jsii-calc.submodule.child.OuterClass
[2020-09-04T13:11:18.749] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.submodule.child.SomeStruct
[2020-09-04T13:11:18.755] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Multiply
[2020-09-04T13:11:18.757] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Negate
[2020-09-04T13:11:18.758] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AbstractClass
[2020-09-04T13:11:18.762] [INFO] jsii/assembler - Registering JSII class: jsii-calc.InbetweenClass
[2020-09-04T13:11:18.762] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ClassWithPrivateConstructorAndAutomaticProperties
[2020-09-04T13:11:18.763] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ObjectRefsInCollections
[2020-09-04T13:11:18.764] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ConsumersOfThisCrazyTypeSystem
[2020-09-04T13:11:18.766] [INFO] jsii/assembler - Registering JSII class: jsii-calc.PythonSelf.ClassWithSelfKwarg
[2020-09-04T13:11:18.767] [INFO] jsii/assembler - Registering JSII class: jsii-calc.EnumDispenser
[2020-09-04T13:11:18.767] [INFO] jsii/assembler - Registering JSII class: jsii-calc.JSObjectLiteralForInterface
[2020-09-04T13:11:18.768] [INFO] jsii/assembler - Registering JSII class: jsii-calc.SingleInstanceTwoTypes
[2020-09-04T13:11:18.769] [INFO] jsii/assembler - Registering JSII class: jsii-calc.SupportsNiceJavaBuilder
[2020-09-04T13:11:18.770] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ConsumePureInterface
[2020-09-04T13:11:18.771] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IAnonymousImplementationProvider
[2020-09-04T13:11:18.771] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Demonstrate982
[2020-09-04T13:11:18.772] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.IReturnsNumber
[2020-09-04T13:11:18.774] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Statics
[2020-09-04T13:11:18.778] [INFO] jsii/assembler - Registering JSII class: jsii-calc.submodule.nested_submodule.Namespaced
[2020-09-04T13:11:18.781] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Sum
[2020-09-04T13:11:18.781] [INFO] jsii/assembler - Registering JSII class: jsii-calc.UnaryOperation
[2020-09-04T13:11:18.782] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AnonymousImplementationProvider
[2020-09-04T13:11:18.783] [INFO] jsii/assembler - Registering JSII class: jsii-calc.composition.CompositeOperation
[2020-09-04T13:11:18.783] [INFO] jsii/assembler - Registering JSII enum: jsii-calc.composition.CompositeOperation.CompositionStringStyle
[2020-09-04T13:11:18.784] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.DerivedStruct
[2020-09-04T13:11:18.784] [INFO] jsii/assembler - Registering JSII class: jsii-calc.StructPassing
[2020-09-04T13:11:18.786] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AbstractClassReturner
[2020-09-04T13:11:18.789] [INFO] jsii/assembler - Registering JSII class: jsii-calc.UsesInterfaceWithProperties
[2020-09-04T13:11:18.790] [INFO] jsii/assembler - Registering JSII class: jsii-calc.NumberGenerator
[2020-09-04T13:11:18.791] [INFO] jsii/assembler - Registering JSII interface: jsii-calc.ConfusingToJacksonStruct
[2020-09-04T13:11:18.797] [INFO] jsii/assembler - Registering JSII class: jsii-calc.UpcasingReflectable
[2020-09-04T13:11:18.802] [INFO] jsii/assembler - Registering JSII class: jsii-calc.StructUnionConsumer
[2020-09-04T13:11:18.804] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AmbiguousParameters
[2020-09-04T13:11:18.805] [INFO] jsii/assembler - Registering JSII class: jsii-calc.InterfaceCollections
[2020-09-04T13:11:18.811] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ReferenceEnumFromScopedPackage
[2020-09-04T13:11:18.811] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ConfusingToJackson
[2020-09-04T13:11:18.813] [INFO] jsii/assembler - Registering JSII class: jsii-calc.GiveMeStructs
[2020-09-04T13:11:18.814] [INFO] jsii/assembler - Registering JSII class: jsii-calc.BinaryOperation
[2020-09-04T13:11:18.814] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Power
[2020-09-04T13:11:18.816] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Constructors
[2020-09-04T13:11:18.817] [INFO] jsii/assembler - Registering JSII class: jsii-calc.submodule.MyClass
[2020-09-04T13:11:18.819] [INFO] jsii/assembler - Registering JSII class: jsii-calc.ConsumerCanRingBell
[2020-09-04T13:11:18.821] [INFO] jsii/assembler - Registering JSII class: jsii-calc.Calculator
[2020-09-04T13:11:18.824] [INFO] jsii/assembler - Registering JSII class: jsii-calc.AllTypes

[2020-09-04T13:09:35.501] [ERROR] jsii/compiler - Type model errors prevented the JSII assembly from being created
error JSII9002: Unable to resolve type "jsii-calc.MyExportedPropsBase". It may be @iternal or not exported from the module's entry point (as configured in "package.json" as "main").
lib/has-unexported-base.ts:3:1 - error JSII9002: Unable to resolve type "jsii-calc.MyExportedPropsBase". It may be @iternal or not exported from the module's entry point (as configured in "package.json" as "main").

3 export interface MyExportedProps extends MyExportedPropsBase {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 readonly mySecondProperty: number;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 }
~

```

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure with index.ts, has-unexported-base.ts, and private/unexported-base.ts using the reported jsii compiler error. Start by tracing how the compiler resolves MyExportedPropsBase and how package.json's main entry point affects exports. Done means the moved unexported base type resolves without JSII9002 while the original behavior remains valid.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.