Files
codeql/ruby/ql/test/library-tests/frameworks/files/Files.ql
Harry Maclean 79c6dc1af0 Refactor IO/File modelling
The main goal here is to get rid of the duplicate definitions of module
`IO`, which currently exist in both `frameworks/core/IO.qll` and
`frameworks/Files.qll`.

We do this by moving the classes inside `Files::IO` to `core/IO.qll`,
but moving most of the actual definitions of those classes to an
internal module `core.internal.FileOrIO`. This means both `Files.qll`
and `IO.qll` can depend on them without leaking them to end users.
2022-05-10 17:32:00 +12:00

31 lines
1011 B
Plaintext

private import ruby
private import codeql.ruby.frameworks.Files
private import codeql.ruby.frameworks.core.IO
private import codeql.ruby.Concepts
query predicate fileInstances(File::FileInstance i) { any() }
query predicate ioInstances(IO::IOInstance i) { any() }
query predicate fileModuleReaders(File::FileModuleReader r) { any() }
query predicate ioReaders(IO::IOReader r) { any() }
query predicate fileReaders(IO::FileReader r) { any() }
query predicate fileModuleFilenameSources(File::FileModuleFilenameSource s) { any() }
query predicate fileUtilsFilenameSources(FileUtils::FileUtilsFilenameSource s) { any() }
query predicate fileSystemReadAccesses(FileSystemReadAccess a) { any() }
query predicate fileSystemAccesses(FileSystemAccess a) { any() }
query predicate fileNameSources(FileNameSource s) { any() }
query predicate ioWriters(IO::IOWriter r) { any() }
query predicate fileWriters(IO::FileWriter r) { any() }
query predicate fileSystemWriteAccesses(FileSystemWriteAccess a) { any() }