Comments (16)
@guilhermejccavalcanti, você pode me passar a lista de repositórios que você minerou (ou se souber o repositório que causou o erro, é ainda melhor)?
from jfstmerge.
@pauloborba @guilhermejccavalcanti Encontrei o erro. Vou explicá-lo.
@GET
@Path("max/{campo}")
@Produces("application/json")
public String maxREST(@PathParam("campo") String campo, @Context UriInfo uriInfo) {
return "{ \"max\": " + super.max(campo, uriInfo) + "}";
}
O projeto que minerei usa construções como acima.
Para pegar a assinatura do método, o programa busca o primeiro {
(que demarcaria o início do corpo). Após isso, buscamos na assinatura o nome dele com o indexOf
. Porém, o {
é usado na 2ª linha.
from jfstmerge.
from jfstmerge.
por que é mesmo que você não pega a assinatura via a árvore criada pelo s3m?
Eu busco saber se o prefixo (modificadores, tipo de retorno) e o sufixo (argumentos) dos métodos a serem comparados são iguais. A assinatura na árvore só me dá o sufixo.
from jfstmerge.
from jfstmerge.
from jfstmerge.
from jfstmerge.
Ok, mudarei então. Já já lanço um PR.
from jfstmerge.
Bem, isso resolve o problema da assinatura. Mas quando buscamos por corpos iguais/similares, usamos a mesma estratégia. Uma alternativa segura é alterar a árvore de parsing para fornecer o corpo também, uma vez que buscar por símbolos ou palavras parece suscetível a erros como acima. Vocês sugerem algo?
from jfstmerge.
from jfstmerge.
(anotações, assinatura, corpo?)
Tem tudo isso em um atributo só (a declaração do método). A assinatura é a única fora. Seria interessante separar, até porque dá pra atacar o problema das anotações depois (a issue #42 fala sobre isso).
from jfstmerge.
from jfstmerge.
@pauloborba @guilhermejccavalcanti Ei, vocês não se confundiram ao dizer que a assinatura armazenada no nó da árvore contém o tipo de retorno, não? Ao meu ver, ele só duplica os argumentos mesmo.
(ignorem o "m" e "n1", são os mesmos métodos em diferentes contribuições)
from jfstmerge.
from jfstmerge.
Acho que é isso mesmo, @guilhermejccavalcanti.
from jfstmerge.
from jfstmerge.
Related Issues (20)
- Replace REGEX on Initialization Blocks Handler to check var declarations
- IOException when attempting to create log
- general renaming handler should not be configurable and should not invoke renaming strategies
- --ignore-space-change flag for all situations HOT 3
- "getMostAccurateMatchForNonAbstractMethods" method returning innapropiate results HOT 2
- should import declarations reach renaming handlers? HOT 5
- duplicated commas when merging enums
- Log and statistics files not updating after every execution
- Parameter to enable/disable unstructured merge output
- Trocar Travis CI por GitHub Actions
- Investigar e corrigir erro de build no Travis CI
- Consider left, base and right trees at the same time when superimposing instead of merging trees in pairs.
- Regression Tests instead of shelltests
- Initialization Blocks Multiple Handler (-hibmb/--handle-initialization-blocks-multiple-blocks) is not present in the S3m.jar HOT 3
- MINE conflict marker not in its own line
- `NullPointerException` at renaming handler
- Duplicated Prefix
- TypeAmbiguityError Handler should report a conflict in a few situations in which import package is replaced by import of individual members
- s3m reporting inconsistent number of conflicts and renaming conflicts
- s3m reporting wrong results when merging initialization blocks from different innerclasses
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jfstmerge.