mirror of
https://github.com/github/codeql.git
synced 2025-12-16 08:43:11 +01:00
Merge pull request #20505 from kaspersv/kaspersv/future-proof-java-discarding2
Overlay: Discard Java config and XML base entities in overlay extracted files
This commit is contained in:
@@ -88,7 +88,45 @@ private string baseConfigLocatable(@configLocatable el) {
|
||||
not isOverlay() and result = getRawFileForConfig(el)
|
||||
}
|
||||
|
||||
overlay[local]
|
||||
private predicate overlayConfigExtracted(string file) {
|
||||
isOverlay() and
|
||||
exists(@configLocatable el | file = getRawFileForConfig(el))
|
||||
}
|
||||
|
||||
overlay[discard_entity]
|
||||
private predicate discardBaseConfigLocatable(@configLocatable el) {
|
||||
overlayChangedFiles(baseConfigLocatable(el))
|
||||
or
|
||||
// The config extractor is currently not incremental and may extract more
|
||||
// property files than those included in overlayChangedFiles.
|
||||
overlayConfigExtracted(baseConfigLocatable(el))
|
||||
}
|
||||
|
||||
/**
|
||||
* An `@xmllocatable` that should be discarded in the base variant if its file is
|
||||
* extracted in the overlay variant.
|
||||
*/
|
||||
overlay[local]
|
||||
abstract class DiscardableXmlLocatable extends @xmllocatable {
|
||||
/** Gets the raw file for an xmllocatable in base. */
|
||||
string getRawFileInBase() { not isOverlay() and result = getRawFile(this) }
|
||||
|
||||
/** Gets a textual representation of this discardable xmllocatable. */
|
||||
string toString() { none() }
|
||||
}
|
||||
|
||||
overlay[local]
|
||||
private predicate overlayXmlExtracted(string file) {
|
||||
isOverlay() and
|
||||
exists(@xmllocatable el | not files(el, _) and not xmlNs(el, _, _, _) and file = getRawFile(el))
|
||||
}
|
||||
|
||||
overlay[discard_entity]
|
||||
private predicate discardXmlLocatable(@xmllocatable el) {
|
||||
overlayChangedFiles(el.(DiscardableXmlLocatable).getRawFileInBase())
|
||||
or
|
||||
// The XML extractor is currently not incremental and may extract more
|
||||
// XML files than those included in overlayChangedFiles.
|
||||
overlayXmlExtracted(el.(DiscardableXmlLocatable).getRawFileInBase())
|
||||
}
|
||||
|
||||
@@ -71,12 +71,12 @@ private module Input implements InputSig<File, Location> {
|
||||
|
||||
import Make<File, Location, Input>
|
||||
|
||||
private class DiscardableXmlAttribute extends DiscardableLocatable, @xmlattribute { }
|
||||
private class DiscardableXmlAttribute extends DiscardableXmlLocatable, @xmlattribute { }
|
||||
|
||||
private class DiscardableXmlElement extends DiscardableLocatable, @xmlelement { }
|
||||
private class DiscardableXmlElement extends DiscardableXmlLocatable, @xmlelement { }
|
||||
|
||||
private class DiscardableXmlComment extends DiscardableLocatable, @xmlcomment { }
|
||||
private class DiscardableXmlComment extends DiscardableXmlLocatable, @xmlcomment { }
|
||||
|
||||
private class DiscardableXmlCharacters extends DiscardableLocatable, @xmlcharacters { }
|
||||
private class DiscardableXmlCharacters extends DiscardableXmlLocatable, @xmlcharacters { }
|
||||
|
||||
private class DiscardableXmlDtd extends DiscardableLocatable, @xmldtd { }
|
||||
private class DiscardableXmlDtd extends DiscardableXmlLocatable, @xmldtd { }
|
||||
|
||||
Reference in New Issue
Block a user