Advanced @Contract capabilities
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
Direção de pesquisa
Comece revisando a anotação Contract e a sintaxe de exemplo nesta issue, incluindo o comportamento proposto de CacheReference e Reference. Determine se é possível especificar uma sintaxe de contrato avançada independente e quais regras de validação são necessárias; o trabalho estará concluído quando a sintaxe e os comportamentos compatíveis estiverem claramente definidos e acordados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I was thinking about possible extra possibilities for the Contract annotation.
I have this example already; I will add more as I stumble upon them:
Consider this method:
@Contract("CacheReference -> param1; null -> fail; !null -> new")
protected abstract CacheReference<K, V> advanceIntoCacheRef(Reference<V> reference);
The method should do the following things; as described by the contract:
- Throw an NPE, if the parameter is
null - Wrap the parameter
Reference(if notinstanceof CacheReference, else see next) into aCacheReference - Return first parameter if the first parameter is
instanceof CacheReference(which is already imported due to return type; return types should be validated byparamN)
Now, obviously this contract won't work, because it doesn't know about more things than nulls; really. Given other capabilities of IntelliJ, it should be fairly easy coming up with a simple, standalone concept for advanced Contract syntax.
- Linguagem predominante
- Kotlin
- Estrelas
- 465
- Forks
- 73
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de JetBrains/java-annotations
-
@TestOnly should be allowed for ElementType.PACKAGETalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
JetBrains/java-annotations#123 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
JetBrains/java-annotations#134 · 6 comentários · 1 reação ·
-
Add AndroidTarget as KMP targetTalvez livre de novo @serjsysoev assumiu há 528 dias e não há nenhum pull request aberto. Aberta
JetBrains/java-annotations#125 · 1 reação · 1 responsável ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
JetBrains/java-annotations#122 · 2 comentários ·
-
Allow use of @Language on (formatted-)string literalsTalvez livre de novo @serjsysoev assumiu há 704 dias e não há nenhum pull request aberto. Aberta
JetBrains/java-annotations#117 · 4 comentários · 1 responsável ·
Todas as issues de JetBrains/java-annotations
Issues semelhantes
-
[Submission] AI服务引擎Abertasubmit-adaption submit-adaption-pre
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 76/100
BetterAndroid/android-notification-icon-project#783 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
coding size:s skill:kotlin-core sub-issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
SKaiNET-developers/SKaiNET#1421 ·
Mantenedores costumam responder em até 1 dia
-
Show Full DetailsAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
leonlatsch/Photok#809 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia