Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support safety annotations on type-use e.g. Collection<@Safe String> #2187

Merged
merged 5 commits into from
Apr 11, 2022

Conversation

carterkozak
Copy link
Contributor

==COMMIT_MSG==
Support safety annotations on type-use e.g. Collection<@Safe String>
==COMMIT_MSG==

Depends on palantir/safe-logging#699

Possible downsides?

This can get tricky -- I haven't implemented anything yet to fail when a List<@Unsafe String> is passed to a location that requires @Safe. It may be confusing to have the ability to describe a piece of data as @Unsafe List<String> or List<@Unsafe String>, however the upside this feature provides is the ability to handle more complex types cleanly. Consider a map of userId to logins, both of which are strings: Map<@Safe String, @Unsafe String> could be used such that map.get(key) is known to be unsafe, while map.keySet().iterator().next() is safe.

@changelog-app
Copy link

changelog-app bot commented Apr 8, 2022

Generate changelog in changelog/@unreleased

Type

  • Feature
  • Improvement
  • Fix
  • Break
  • Deprecation
  • Manual task
  • Migration

Description

Support safety annotations on type-use e.g. Collection<@Safe String>

Check the box to generate changelog(s)

  • Generate changelog entry

@carterkozak carterkozak requested a review from fawind April 11, 2022 12:03
@carterkozak carterkozak marked this pull request as ready for review April 11, 2022 12:03
Copy link
Contributor

@fawind fawind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nifty!

@bulldozer-bot bulldozer-bot bot merged commit 8b053f9 into develop Apr 11, 2022
@bulldozer-bot bulldozer-bot bot deleted the ckozak/type_use_annotations branch April 11, 2022 12:35
@svc-autorelease
Copy link
Collaborator

Released 4.101.0

This was referenced Apr 11, 2022
bulldozer-bot bot pushed a commit to palantir/witchcraft-api that referenced this pull request Apr 11, 2022
###### _excavator_ is a bot for automating changes across repositories.

Changes produced by the roomba/latest-baseline-oss check.

# Release Notes
## 4.101.0
| Type | Description | Link |
| ---- | ----------- | ---- |
| Improvement | Support safety annotations on type-use e.g. `Collection<@safe String>` | palantir/gradle-baseline#2187 |


## 4.102.0
| Type | Description | Link |
| ---- | ----------- | ---- |
| Fix | Fix the `com.palantir.baseline-circleci` plugin so that compilation failures are once again parsed as XML and can be surfaced at the top of CircleCI builds. | palantir/gradle-baseline#2189 |


## 4.103.0
| Type | Description | Link |
| ---- | ----------- | ---- |
| Fix | Fix TypeArgumentHandler NPE on wildcard types | palantir/gradle-baseline#2190 |



To enable or disable this check, please contact the maintainers of Excavator.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants