Skip to content

Commit 0eddcff

Browse files
authored
chore(release): 1.116.0 (#4949)
See [CHANGELOG](https://github.com/aws/jsii/blob/bump/1.116.0/CHANGELOG.md)
2 parents 9c5134e + 8c71ec7 commit 0eddcff

File tree

13 files changed

+192
-13
lines changed

13 files changed

+192
-13
lines changed

.mergify/config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ queue_rules:
1212
1313
{{ body }}
1414
merge_method: squash
15+
batch_size: 1
1516

1617
- name: default-merge
1718
conditions:
@@ -22,6 +23,7 @@ queue_rules:
2223
2324
{{ body }}
2425
merge_method: merge
26+
batch_size: 1
2527

2628
pull_request_rules:
2729
- name: label core

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [1.116.0](https://github.com/aws/jsii/compare/v1.115.0...v1.116.0) (2025-10-14)
6+
7+
8+
### Bug Fixes
9+
10+
* type intersections don't work for Java class builders ([#4945](https://github.com/aws/jsii/issues/4945)) ([8f6ecd9](https://github.com/aws/jsii/commit/8f6ecd9c84635a487a1f1fcfe72ebfffe972ee9f))
11+
512
## [1.115.0](https://github.com/aws/jsii/compare/v1.114.1...v1.115.0) (2025-09-29)
613

714

gh-pages/content/specification/2-type-system.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ array is produced each time it is passed through the process boundary.
4444
!!! info
4545
Items in the list may be passed by-reference (according to their type's specification), in which case mutating
4646
operations performed on those may be visible across the process boundary.
47-
47+
4848
[Find out more here](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#arrays)
4949

5050
### Enum
@@ -109,7 +109,7 @@ boundary. As a consequence, they may not include any method.
109109
!!! question
110110
The by-value nature of `object` is problematic because **TypeScript** makes no guarantee with respects to the
111111
absence of methods on `object`, and properties may be dynamic.
112-
112+
113113
[Find out more here](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#object-types)
114114

115115
### Promises
@@ -188,6 +188,25 @@ API.
188188

189189
[Find out more here](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types)
190190

191+
### Type Intersections
192+
193+
Type intersections are supported, with limitations. Type intersections indicate that values, specifically object
194+
instances, must implement two or more interfaces simultaneously. They are written as `TypeA & TypeB`. Type intersections
195+
are supported with the following limitations:
196+
197+
- All branches of the type intersection must be (behavioral) interfaces, not _structs_.
198+
- Type intersections may only appear in input position. That means they may only appear as a function argument,
199+
or a member of a struct that is exclusively used as a function argument. That excludes them appearing as function
200+
return types, class or behavioral interface members, or as struct members that are the return types of functions.
201+
202+
Type intersection support was added in:
203+
204+
| Tool | Version |
205+
|------|---------|
206+
| `jsii` | `>= 5.9.6` |
207+
| `jsii-rosetta` | `>= 5.9.5` |
208+
| `jsii-pacmak`, `jsii-reflect`, `jsii-diff` | `>= 1.115.0` |
209+
191210
## Serialization Behavior
192211

193212
When values are passed between the _host_ process and the `node` process, they are serialized as JSON documents. They

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
"rejectCycles": true
1313
}
1414
},
15-
"version": "1.115.0",
15+
"version": "1.116.0",
1616
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
1717
}

packages/jsii-calc/lib/intersection.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,7 @@ export class ConsumesIntersection {
1717
void props;
1818
}
1919

20-
private constructor() {}
20+
public constructor(props: IntersectionProps) {
21+
void props;
22+
}
2123
}

packages/jsii-calc/test/assembly.jsii

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16937,6 +16937,23 @@
1693716937
"stability": "stable"
1693816938
},
1693916939
"fqn": "jsii-calc.intersection.ConsumesIntersection",
16940+
"initializer": {
16941+
"docs": {
16942+
"stability": "stable"
16943+
},
16944+
"locationInModule": {
16945+
"filename": "lib/intersection.ts",
16946+
"line": 20
16947+
},
16948+
"parameters": [
16949+
{
16950+
"name": "props",
16951+
"type": {
16952+
"fqn": "jsii-calc.intersection.IntersectionProps"
16953+
}
16954+
}
16955+
]
16956+
},
1694016957
"kind": "class",
1694116958
"locationInModule": {
1694216959
"filename": "lib/intersection.ts",
@@ -19351,5 +19368,5 @@
1935119368
"intersection-types"
1935219369
],
1935319370
"version": "3.20.120",
19354-
"fingerprint": "tO2XUx4QWDYtIzVyIejPr2qHHJX+/TG1lb6O2uWdS78="
19371+
"fingerprint": "GVwmWxAUwVMUeujfDgP0gEVA7pfU5wIz05Iyw8VL0RE="
1935519372
}

packages/jsii-pacmak/lib/targets/java.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2301,8 +2301,10 @@ class JavaGenerator extends Generator {
23012301
memberName: prop.name,
23022302
});
23032303
this.emitStabilityAnnotations(prop.spec);
2304+
// FIXME: generix
2305+
const renderedType = displayType(javaType, 'covariant');
23042306
this.code.openBlock(
2305-
`public ${BUILDER_CLASS_NAME} ${fieldName}(final ${displayType(javaType, 'covariant')} ${fieldName})`,
2307+
`public ${typeVarDeclarations([javaType])}${BUILDER_CLASS_NAME} ${fieldName}(final ${renderedType} ${fieldName})`,
23062308
);
23072309
this.code.line(
23082310
`this.${structParamName}${

packages/jsii-pacmak/test/generated-code/__snapshots__/target-dotnet.test.js.snap

Lines changed: 11 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/jsii-pacmak/test/generated-code/__snapshots__/target-go.test.js.snap

Lines changed: 56 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/jsii-pacmak/test/generated-code/__snapshots__/target-java.test.js.snap

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)