square / square/wire

Mark setter parameters for oneof fields with @NonNull

Open
#1,340 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Kotlin
Stars
4.4k
Forks
627
Avg merge
3d 15m
Merged PRs (30d)
20

Description

Based on #1210.

// Java
public Builder foo(Integer foo) {
  this.foo = foo;
  this.bar = null;
  this.baz = null;
  return this;
}

Passing null as the argument will break the oneof contract, marking the parameter with @NonNull can at least hint at the potential problem.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the context in issue #1210 and locating the Java builder code that generates setters for oneof fields. Done means oneof setter parameters are marked with @NonNull so passing null is surfaced as a potential contract violation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.