Hi!
Please, read the whole issue, before rejecting it, as I think at least part of it is directly related to this project.
The chapter about partial analysis says, that we must fill the partialResult map and then process it in the checkPartialResults method. However, VectorDrawableCompatDetector seems to do it the other way around.
It fills the map in visitElement method, but processes it within the visitAttribute method. The oddest thing is that inside of the visitAttribute method the partial results of other projects are checked as well, however in my experiment (I copied the source code to my project and added some extra logging) at this point partial results were only containing the results of the scanned module. It makes the usage of the partial results redundant, doesn't it?
I wonder, if this VectorDrawableCompatDetector uses partial results in the expected manner. If yes, then could you also clarify the following:
When partial results are checked out of the checkPartialResults method, results of which projects must be available? All of those, on which the scanned project depend?
Does access to partial results break the highlighting in the Android Studio? In the custom detector of mine just adding a call to getPartialResult removed the highlighting immediately. My detector check issues in multiple types of files, in some of which the data from the other modules is required, but in some it is not. The documentation has the following section, which made me think that maybe, to make the detector work under the AS I need to protect those branches, which don't need data from all modules, with isGlobalAnalysis check. If my assumption is correct, then it might make a good addition to the doc.
I have a feeling that the approach from VectorDrawableCompatDetector works only when checkDependencies is set to true in lint config. But this is not mentioned anywhere.
Hi! Please, read the whole issue, before rejecting it, as I think at least part of it is directly related to this project.
The chapter about partial analysis says, that we must fill the
partialResult
map and then process it in thecheckPartialResults
method. However,VectorDrawableCompatDetector
seems to do it the other way around.It fills the map in
visitElement
method, but processes it within thevisitAttribute
method. The oddest thing is that inside of thevisitAttribute
method the partial results of other projects are checked as well, however in my experiment (I copied the source code to my project and added some extra logging) at this point partial results were only containing the results of the scanned module. It makes the usage of the partial results redundant, doesn't it?I wonder, if this
VectorDrawableCompatDetector
uses partial results in the expected manner. If yes, then could you also clarify the following:checkPartialResults
method, results of which projects must be available? All of those, on which the scanned project depend?getPartialResult
removed the highlighting immediately. My detector check issues in multiple types of files, in some of which the data from the other modules is required, but in some it is not. The documentation has the following section, which made me think that maybe, to make the detector work under the AS I need to protect those branches, which don't need data from all modules, withisGlobalAnalysis
check. If my assumption is correct, then it might make a good addition to the doc.Thanks in advance for the answers.